From 64b76061154fda927f7e7f47dda82f1119216fc1 Mon Sep 17 00:00:00 2001 From: Khalid Shaik Date: Wed, 23 Nov 2022 21:33:25 +0530 Subject: [PATCH] ANDROID: Sched: Add restricted vendor hook in schedule() This vendor hook is used to override the scheduler decisions with our vendor scheduler logic This vendor hook was part of commit 292f430816f36384634ca1365ccc67c08302dd21 (ANDROID: Sched: Add restricted vendor hooks for scheduler) But commit 7219ca326a8e84df0c88db8aa4eafd793a55527c (Revert "ANDROID: Sched: Add restricted vendor hooks for scheduler") deleted above vendor hooks stating unused Adding back above vendor hooks required for EMS. Bug: 259900798 Change-Id: I1d8c7b70223d85c10127db3794c2ef242b0abb3e Signed-off-by: Khalid Shaik --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/sched.h | 4 ++++ kernel/sched/core.c | 1 + 3 files changed, 6 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index c60ec52d5d26..bc0d4b44ec21 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -183,6 +183,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_irqs_enable); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_task_cpu); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_fork); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_wake_up_new_task); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_build_perf_domains); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_attach); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_can_attach); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 7d41dbc6ac15..794dc1b4fa6f 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -153,6 +153,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_wake_up_new_task, TP_PROTO(struct task_struct *p), TP_ARGS(p), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_schedule, + TP_PROTO(struct task_struct *prev, struct task_struct *next, struct rq *rq), + TP_ARGS(prev, next, rq), 1); + DECLARE_RESTRICTED_HOOK(android_rvh_build_perf_domains, TP_PROTO(bool *eas_check), TP_ARGS(eas_check), 1); diff --git a/kernel/sched/core.c b/kernel/sched/core.c index f53d62faa360..0e934ba80c34 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4758,6 +4758,7 @@ static void __sched notrace __schedule(bool preempt) clear_tsk_need_resched(prev); clear_preempt_need_resched(); + trace_android_rvh_schedule(prev, next, rq); if (likely(prev != next)) { rq->nr_switches++; /*