diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 20c400d15cda..2c11e964cc5b 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -18,6 +18,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_select_task_rq_rt, TP_PROTO(struct task_struct *p, int prev_cpu, int sd_flag, int wake_flags, int *new_cpu), TP_ARGS(p, prev_cpu, sd_flag, wake_flags, new_cpu), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_select_task_rq_dl, + TP_PROTO(struct task_struct *p, int prev_cpu, int sd_flag, int wake_flags, int *new_cpu), + TP_ARGS(p, prev_cpu, sd_flag, wake_flags, new_cpu), 1); + DECLARE_RESTRICTED_HOOK(android_rvh_select_fallback_rq, TP_PROTO(int cpu, struct task_struct *p, int *new_cpu), TP_ARGS(cpu, p, new_cpu), 1); diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 60144c27f8ef..0ab432b62711 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2245,6 +2245,12 @@ select_task_rq_dl(struct task_struct *p, int cpu, int flags) struct task_struct *curr, *donor; bool select_rq; struct rq *rq; + int target_cpu = -1; + + trace_android_rvh_select_task_rq_dl(p, cpu, flags & 0xF, + flags, &target_cpu); + if (target_cpu >= 0) + return target_cpu; if (!(flags & WF_TTWU)) goto out; diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index a10a28e089f9..301be05fe55e 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -14,6 +14,7 @@ #include EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_fair); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_rt); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_task_rq_dl); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_select_fallback_rq); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_scheduler_tick); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_enqueue_task);