diff --git a/drivers/android/binder.c b/drivers/android/binder.c index bfbe2b5a2e3b..bce8e1baa643 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -957,6 +957,7 @@ static void binder_wakeup_poll_threads_ilocked(struct binder_proc *proc, thread = rb_entry(n, struct binder_thread, rb_node); if (thread->looper & BINDER_LOOPER_STATE_POLL && binder_available_for_proc_work_ilocked(thread)) { + trace_android_vh_binder_wakeup_poll_threads_ilocked(thread->task); if (sync) wake_up_interruptible_sync(&thread->wait); else @@ -1016,6 +1017,7 @@ static void binder_wakeup_thread_ilocked(struct binder_proc *proc, assert_spin_locked(&proc->inner_lock); if (thread) { + trace_android_vh_binder_wakeup_thread_ilocked(thread->task); if (sync) wake_up_interruptible_sync(&thread->wait); else diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index bd099c69b855..1c83433a97e8 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -49,6 +49,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_is_fpsimd_save); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_transaction_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_set_priority); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_restore_priority); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wakeup_poll_threads_ilocked); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wakeup_thread_ilocked); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_finished); diff --git a/include/trace/hooks/binder.h b/include/trace/hooks/binder.h index 48ef1ebb65ba..ffd9adb903c4 100644 --- a/include/trace/hooks/binder.h +++ b/include/trace/hooks/binder.h @@ -23,10 +23,18 @@ DECLARE_HOOK(android_vh_binder_set_priority, DECLARE_HOOK(android_vh_binder_restore_priority, TP_PROTO(struct binder_transaction *t, struct task_struct *task), TP_ARGS(t, task)); +DECLARE_HOOK(android_vh_binder_wakeup_poll_threads_ilocked, + TP_PROTO(struct task_struct *task), + TP_ARGS(task)); +DECLARE_HOOK(android_vh_binder_wakeup_thread_ilocked, + TP_PROTO(struct task_struct *task), + TP_ARGS(task)); #else #define trace_android_vh_binder_transaction_init(t) #define trace_android_vh_binder_set_priority(t, task) #define trace_android_vh_binder_restore_priority(t, task) +#define trace_android_vh_binder_wakeup_poll_threads_ilocked(task) +#define trace_android_vh_binder_wakeup_thread_ilocked(task) #endif #endif /* _TRACE_HOOK_BINDER_H */ /* This part must be outside protection */