diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 8379fe543f4e..338ae43c8a07 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -265,6 +265,11 @@ DECLARE_HOOK(android_vh_irqtime_account_process_tick, TP_PROTO(struct task_struct *p, struct rq *rq, int user_tick, int ticks), TP_ARGS(p, rq, user_tick, ticks)); +DECLARE_HOOK(android_vh_copy_process, + TP_PROTO(struct task_struct *p, int nr_threads), + TP_ARGS(p, nr_threads)); + + enum uclamp_id; struct uclamp_se; DECLARE_RESTRICTED_HOOK(android_rvh_uclamp_eff_get, diff --git a/kernel/fork.c b/kernel/fork.c index 9505e10dd213..4818de1fec59 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2611,6 +2611,7 @@ __latent_entropy struct task_struct *copy_process( attach_pid(p, PIDTYPE_PID); nr_threads++; } + trace_android_vh_copy_process(current, nr_threads); total_forks++; hlist_del_init(&delayed.node); spin_unlock(¤t->sighand->siglock); diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index cf8e8b134f19..472d0bc271f8 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -45,6 +45,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup_fair); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_deadline); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_by_task); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_task); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_copy_process); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_uclamp_eff_get); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_after_enqueue_task); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_after_dequeue_task);