diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 3f5ab6962c9a..5e4f05c20be0 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -367,6 +367,9 @@ DECLARE_HOOK(android_vh_dup_task_struct, TP_PROTO(struct task_struct *tsk, struct task_struct *orig), TP_ARGS(tsk, orig)); +DECLARE_RESTRICTED_HOOK(android_rvh_post_init_entity_util_avg, + TP_PROTO(struct sched_entity *se), + TP_ARGS(se), 1); /* macro versions of hooks are no longer required */ #endif /* _TRACE_HOOK_SCHED_H */ diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 94d19e48e42b..0f624291a509 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -869,6 +869,9 @@ void post_init_entity_util_avg(struct task_struct *p) } sa->runnable_avg = sa->util_avg; + + /* Hook before this se's util is attached to cfs_rq's util */ + trace_android_rvh_post_init_entity_util_avg(se); } #else /* !CONFIG_SMP */ diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index df97123e2c2f..8c511d7eaa04 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -94,3 +94,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_account_process_tick_gran); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_account_task_time); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_dup_task_struct); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_irqtime_account_process_tick); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_post_init_entity_util_avg);