From cabf26b4eb3796ea1c7010f733ecdf7d5cf9c930 Mon Sep 17 00:00:00 2001 From: Choonghoon Park Date: Thu, 3 Jun 2021 20:35:50 +0900 Subject: [PATCH] ANDROID: sched: Add vendor hook to select ilb cpu Add android_rvh_find_new_ilb to select a next ilb cpu for vendors. Bug: 190228983 Change-Id: Iba1a0cd9cdc22dcf628dd33f8d838fe513a4818f Signed-off-by: Choonghoon Park --- drivers/android/vendor_hooks.c | 1 + include/trace/hooks/sched.h | 4 ++++ kernel/sched/fair.c | 6 +++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 96f63b6acbf0..6954bdfe4a44 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -198,3 +198,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_em_dev_register_pd); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_logbuf); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_logbuf_pr_cont); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_post_init_entity_util_avg); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_find_new_ilb); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 06f0e5e58279..2fc98949e761 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -327,6 +327,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_post_init_entity_util_avg, TP_PROTO(struct sched_entity *se), TP_ARGS(se), 1); +DECLARE_RESTRICTED_HOOK(android_rvh_find_new_ilb, + TP_PROTO(struct cpumask *nohz_idle_cpus_mask, int *ilb), + TP_ARGS(nohz_idle_cpus_mask, ilb), 1); + #endif /* _TRACE_HOOK_SCHED_H */ /* This part must be outside protection */ #include diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 4faad3f099b9..825727bc044f 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -10427,9 +10427,13 @@ static inline int on_null_domain(struct rq *rq) static inline int find_new_ilb(void) { - int ilb; + int ilb = -1; const struct cpumask *hk_mask; + trace_android_rvh_find_new_ilb(nohz.idle_cpus_mask, &ilb); + if (ilb >= 0) + return ilb; + hk_mask = housekeeping_cpumask(HK_FLAG_MISC); for_each_cpu_and(ilb, nohz.idle_cpus_mask, hk_mask) {