ANDROID: GKI: Add vendor hook to binder transaction
We want to get binder free space information in the binder
transaction, but this needs to hold the mutex lock. So we add
this restrict hook to do this.
Bug: 205648032
Change-Id: Ie1f377018da686bd62f5ac2d1e5421899741e6d5
Signed-off-by: Liangliang Li <liliangliang@vivo.com>
(cherry picked from commit 2f3f5731de)
This commit is contained in:
@@ -2856,6 +2856,7 @@ static void binder_transaction(struct binder_proc *proc,
|
|||||||
if (target_thread)
|
if (target_thread)
|
||||||
e->to_thread = target_thread->pid;
|
e->to_thread = target_thread->pid;
|
||||||
e->to_proc = target_proc->pid;
|
e->to_proc = target_proc->pid;
|
||||||
|
trace_android_rvh_binder_transaction(target_proc, proc, thread, tr);
|
||||||
|
|
||||||
/* TODO: reuse incoming transaction for reply */
|
/* TODO: reuse incoming transaction for reply */
|
||||||
t = kzalloc(sizeof(*t), GFP_KERNEL);
|
t = kzalloc(sizeof(*t), GFP_KERNEL);
|
||||||
|
|||||||
@@ -203,6 +203,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup_ignore);
|
|||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_replace_next_task_fair);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_replace_next_task_fair);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sched_yield);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sched_yield);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wait_for_work);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wait_for_work);
|
||||||
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_binder_transaction);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sync_txn_recvd);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sync_txn_recvd);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_build_sched_domains);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_build_sched_domains);
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn);
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ DECLARE_HOOK(android_vh_binder_restore_priority,
|
|||||||
TP_ARGS(t, task));
|
TP_ARGS(t, task));
|
||||||
struct binder_proc;
|
struct binder_proc;
|
||||||
struct binder_thread;
|
struct binder_thread;
|
||||||
|
struct binder_transaction_data;
|
||||||
DECLARE_HOOK(android_vh_binder_wakeup_ilocked,
|
DECLARE_HOOK(android_vh_binder_wakeup_ilocked,
|
||||||
TP_PROTO(struct task_struct *task, bool sync, struct binder_proc *proc),
|
TP_PROTO(struct task_struct *task, bool sync, struct binder_proc *proc),
|
||||||
TP_ARGS(task, sync, proc));
|
TP_ARGS(task, sync, proc));
|
||||||
@@ -32,6 +33,10 @@ DECLARE_HOOK(android_vh_binder_wait_for_work,
|
|||||||
DECLARE_HOOK(android_vh_sync_txn_recvd,
|
DECLARE_HOOK(android_vh_sync_txn_recvd,
|
||||||
TP_PROTO(struct task_struct *tsk, struct task_struct *from),
|
TP_PROTO(struct task_struct *tsk, struct task_struct *from),
|
||||||
TP_ARGS(tsk, from));
|
TP_ARGS(tsk, from));
|
||||||
|
DECLARE_RESTRICTED_HOOK(android_rvh_binder_transaction,
|
||||||
|
TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc,
|
||||||
|
struct binder_thread *thread, struct binder_transaction_data *tr),
|
||||||
|
TP_ARGS(target_proc, proc, thread, tr), 1);
|
||||||
#endif /* _TRACE_HOOK_BINDER_H */
|
#endif /* _TRACE_HOOK_BINDER_H */
|
||||||
/* This part must be outside protection */
|
/* This part must be outside protection */
|
||||||
#include <trace/define_trace.h>
|
#include <trace/define_trace.h>
|
||||||
|
|||||||
Reference in New Issue
Block a user