From 4f75d20177ae817e24a4bb70ecbe416f5609eb69 Mon Sep 17 00:00:00 2001 From: Xuewen Yan Date: Wed, 24 Nov 2021 14:27:27 +0800 Subject: [PATCH] ANDROID: Add vendor hook to the deadline scheduler android_rvh_select_task_rq_dl: To perform vendor-specific DL task placement. Bug: 439735273 Bug: 207585485 Test: build pass Signed-off-by: Xuewen Yan Change-Id: Ibe147276b52a1be877802a2e53e87ba3eb8c9161 (cherry picked from commit 478f3ee1d3e5be03ecd3603643abfc1186468881) --- include/trace/hooks/sched.h | 4 ++++ kernel/sched/deadline.c | 6 ++++++ kernel/sched/vendor_hooks.c | 1 + 3 files changed, 11 insertions(+) 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);