From e27391648243d8980a3f9f71b7a2010a7d8d816e Mon Sep 17 00:00:00 2001 From: lijianzhong Date: Wed, 24 Mar 2021 16:38:32 +0800 Subject: [PATCH] ANDROID: sched: add trace_android_vh_map_util_freq parameter Add "cpufreq_policy" and "need_freq_update" parameters to the vendor hook to enable frequency calculation in certain special cases related to OEM's frequency tuning policy. Bug: 183674818 Signed-off-by: lijianzhong Change-Id: I232d2e1ae885d6736eca9e4709870f4272b4873d --- include/trace/hooks/sched.h | 6 ++++-- kernel/sched/cpufreq_schedutil.c | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index ca5b7dd6a595..b2461e4a5d7e 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -332,10 +332,12 @@ DECLARE_HOOK(android_vh_sched_pelt_multiplier, TP_PROTO(unsigned int old, unsigned int cur, int *ret), TP_ARGS(old, cur, ret)); +struct cpufreq_policy; DECLARE_HOOK(android_vh_map_util_freq, TP_PROTO(unsigned long util, unsigned long freq, - unsigned long cap, unsigned long *next_freq), - TP_ARGS(util, freq, cap, next_freq)); + unsigned long cap, unsigned long *next_freq, struct cpufreq_policy *policy, + bool *need_freq_update), + TP_ARGS(util, freq, cap, next_freq, policy, need_freq_update)); /* macro versions of hooks are no longer required */ diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index 155adf154196..042e5ad60843 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -148,7 +148,8 @@ static unsigned int get_next_freq(struct sugov_policy *sg_policy, unsigned long next_freq = 0; util = map_util_perf(util); - trace_android_vh_map_util_freq(util, freq, max, &next_freq); + trace_android_vh_map_util_freq(util, freq, max, &next_freq, policy, + &sg_policy->need_freq_update); if (next_freq) freq = next_freq; else