diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index b272a089a1c4..20c400d15cda 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -431,6 +431,10 @@ DECLARE_HOOK(android_vh_scx_task_switch_finish, TP_PROTO(struct task_struct *p, int enable), TP_ARGS(p, enable)); +DECLARE_HOOK(android_vh_switching_to_scx, + TP_PROTO(struct rq *rq, struct task_struct *p), + TP_ARGS(rq, p)); + struct sugov_policy; DECLARE_RESTRICTED_HOOK(android_rvh_set_sugov_update, TP_PROTO(struct sugov_policy *sg_policy, unsigned int next_freq, bool *should_update), diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 5fec7ed642af..a56fac61ce5b 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -3861,6 +3861,8 @@ static void switching_to_scx(struct rq *rq, struct task_struct *p) if (SCX_HAS_OP(set_cpumask)) SCX_CALL_OP_TASK(SCX_KF_REST, set_cpumask, p, (struct cpumask *)p->cpus_ptr); + + trace_android_vh_switching_to_scx(rq, p); } static void switched_from_scx(struct rq *rq, struct task_struct *p) diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index 97155e1a2285..a10a28e089f9 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -112,6 +112,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scx_ops_enable_state); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scx_enabled); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scx_set_cpus_allowed); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scx_task_switch_finish); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_switching_to_scx); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_sugov_update); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_rq_clock_pelt); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_load_avg_blocked_se);