From 57e680a1a8d3e98be190c0738c00c87cce6ef236 Mon Sep 17 00:00:00 2001 From: Khalid Shaik Date: Wed, 23 Nov 2022 21:53:36 +0530 Subject: [PATCH] ANDROID: Sched: Add restricted vendor hook in update_misfit_status() Added a hook in update_misfit_status() for our vendor scheduler logic to move the task to more capable CPU incase, if old misfit value is not same as current misfit value. 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: I9f71b97f673aea12f32fda2dd111d3760394de1f Signed-off-by: Khalid Shaik --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/sched.h | 4 ++++ kernel/sched/fair.c | 1 + 3 files changed, 6 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index bc0d4b44ec21..ecad931b264c 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -185,6 +185,7 @@ 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_update_misfit_status); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_attach); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_can_attach); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_online); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 794dc1b4fa6f..112bb8a4479d 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -161,6 +161,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_build_perf_domains, TP_PROTO(bool *eas_check), TP_ARGS(eas_check), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_update_misfit_status, + TP_PROTO(struct task_struct *p, struct rq *rq, bool *need_update), + TP_ARGS(p, rq, need_update), 1); + DECLARE_RESTRICTED_HOOK(android_rvh_cpu_cgroup_attach, TP_PROTO(struct cgroup_taskset *tset), TP_ARGS(tset), 1); diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index b01ac079a770..1d715372ae80 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4112,6 +4112,7 @@ static inline void update_misfit_status(struct task_struct *p, struct rq *rq) { bool need_update = true; + trace_android_rvh_update_misfit_status(p, rq, &need_update); if (!static_branch_unlikely(&sched_asym_cpucapacity) || !need_update) return;