diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 35d1472ff420..c880a195caa4 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -76,6 +76,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_setscheduler, TP_PROTO(struct task_struct *p), TP_ARGS(p), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_replace_next_task_fair, + TP_PROTO(struct rq *rq, struct task_struct **p, struct task_struct *prev), + TP_ARGS(rq, p, prev), 1); + struct sched_group; DECLARE_RESTRICTED_HOOK(android_rvh_find_busiest_group, TP_PROTO(struct sched_group *busiest, struct rq *dst_rq, int *out_balance), diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 0771669953ba..073fbed7caf6 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -8960,6 +8960,8 @@ pick_next_task_fair(struct rq *rq, struct task_struct *prev, struct rq_flags *rf again: p = pick_task_fair(rq); + trace_android_rvh_replace_next_task_fair(rq, &p, prev); + if (!p) goto idle; se = &p->se; diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index b3b8b1ae4bde..87f6982db156 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -38,6 +38,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_setaffinity); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_build_sched_domains); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_tick); 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_sched_balance_rt); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_check_preempt_wakeup); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_cpus_allowed_by_task);