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:
Lingutla Chandrasekhar
2019-03-01 17:17:09 +05:30
committed by Todd Kjos
parent 0e25c12f4e
commit 07ecea7cb8
2 changed files with 52 additions and 2 deletions

View File

@@ -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 */

View File

@@ -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;