Revert "Revert "ANDROID: trace: Add trace points for tasklet entry/exit""
This reverts commit 2cadcbac1a, as the
merge conflicts have been resolved.
Bug: 168521633
Change-Id: Ib17f36be69a9112cc5ea2a5a2d940b82b480c8f0
Signed-off-by: Lingutla Chandrasekhar <clingutla@codeaurora.org>
[elavila: Port to mainline]
Signed-off-by: J. Avila <elavila@google.com>
Signed-off-by: Shaleen Agrawal <shalagra@codeaurora.org>
This commit is contained in:
committed by
Todd Kjos
parent
0e25c12f4e
commit
07ecea7cb8
@@ -160,6 +160,51 @@ DEFINE_EVENT(softirq, softirq_raise,
|
|||||||
TP_ARGS(vec_nr)
|
TP_ARGS(vec_nr)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
DECLARE_EVENT_CLASS(tasklet,
|
||||||
|
|
||||||
|
TP_PROTO(void *func),
|
||||||
|
|
||||||
|
TP_ARGS(func),
|
||||||
|
|
||||||
|
TP_STRUCT__entry(
|
||||||
|
__field( void *, func)
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_fast_assign(
|
||||||
|
__entry->func = func;
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_printk("function=%ps", __entry->func)
|
||||||
|
);
|
||||||
|
|
||||||
|
DEFINE_EVENT(tasklet, tasklet_entry,
|
||||||
|
|
||||||
|
TP_PROTO(void *func),
|
||||||
|
|
||||||
|
TP_ARGS(func)
|
||||||
|
);
|
||||||
|
|
||||||
|
DEFINE_EVENT(tasklet, tasklet_exit,
|
||||||
|
|
||||||
|
TP_PROTO(void *func),
|
||||||
|
|
||||||
|
TP_ARGS(func)
|
||||||
|
);
|
||||||
|
|
||||||
|
DEFINE_EVENT(tasklet, tasklet_hi_entry,
|
||||||
|
|
||||||
|
TP_PROTO(void *func),
|
||||||
|
|
||||||
|
TP_ARGS(func)
|
||||||
|
);
|
||||||
|
|
||||||
|
DEFINE_EVENT(tasklet, tasklet_hi_exit,
|
||||||
|
|
||||||
|
TP_PROTO(void *func),
|
||||||
|
|
||||||
|
TP_ARGS(func)
|
||||||
|
);
|
||||||
|
|
||||||
#endif /* _TRACE_IRQ_H */
|
#endif /* _TRACE_IRQ_H */
|
||||||
|
|
||||||
/* This part must be outside protection */
|
/* This part must be outside protection */
|
||||||
|
|||||||
@@ -789,10 +789,15 @@ static void tasklet_action_common(struct softirq_action *a,
|
|||||||
if (tasklet_trylock(t)) {
|
if (tasklet_trylock(t)) {
|
||||||
if (!atomic_read(&t->count)) {
|
if (!atomic_read(&t->count)) {
|
||||||
if (tasklet_clear_sched(t)) {
|
if (tasklet_clear_sched(t)) {
|
||||||
if (t->use_callback)
|
if (t->use_callback) {
|
||||||
|
trace_tasklet_entry(t->callback);
|
||||||
t->callback(t);
|
t->callback(t);
|
||||||
else
|
trace_tasklet_exit(t->callback);
|
||||||
|
} else {
|
||||||
|
trace_tasklet_entry(t->func);
|
||||||
t->func(t->data);
|
t->func(t->data);
|
||||||
|
trace_tasklet_exit(t->func);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
tasklet_unlock(t);
|
tasklet_unlock(t);
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user