diff --git a/drivers/android/binder.c b/drivers/android/binder.c index f0c1b4c8fe42..17a6ce20b765 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -1357,6 +1357,7 @@ retry: "%d new ref %d desc %d for node %d\n", proc->pid, new_ref->data.debug_id, new_ref->data.desc, node->debug_id); + trace_android_vh_binder_new_ref(proc, new_ref->data.desc, new_ref->node->debug_id); binder_node_unlock(node); return new_ref; } @@ -1533,6 +1534,7 @@ err_no_ref: */ static void binder_free_ref(struct binder_ref *ref) { + trace_android_vh_binder_del_ref(ref->proc, ref->data.desc); if (ref->node) binder_free_node(ref->node); kfree(ref->death); diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index dc44c5d486c8..45bcfa4010c7 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -454,3 +454,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_read_fault); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_alloc_pages_reclaim_start); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_alloc_pages_reclaim_cycle_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_bd_link_disk_holder); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_new_ref); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_del_ref); diff --git a/include/trace/hooks/binder.h b/include/trace/hooks/binder.h index 07e856e7fd7c..81d840811cba 100644 --- a/include/trace/hooks/binder.h +++ b/include/trace/hooks/binder.h @@ -112,6 +112,12 @@ DECLARE_HOOK(android_vh_binder_thread_read, TP_PROTO(struct list_head **list, struct binder_proc *proc, struct binder_thread *thread), TP_ARGS(list, proc, thread)); +DECLARE_HOOK(android_vh_binder_new_ref, + TP_PROTO(struct binder_proc *proc, uint32_t ref_desc, int node_debug_id), + TP_ARGS(proc, ref_desc, node_debug_id)); +DECLARE_HOOK(android_vh_binder_del_ref, + TP_PROTO(struct binder_proc *proc, uint32_t ref_desc), + TP_ARGS(proc, ref_desc)); #endif /* _TRACE_HOOK_BINDER_H */ /* This part must be outside protection */ #include