diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 3714a17963d9..d4a9b0dfe846 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -189,6 +189,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_dump_buffer); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_allow_domain_state); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_map_util_freq); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_next_freq); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sugov_get_util); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_report_bug); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_em_cpu_energy); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_up); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index ac58cf3b312e..a9884beaf2e8 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -241,6 +241,10 @@ DECLARE_HOOK(android_vh_update_next_freq, unsigned int *new_next_freq, s64 delta_ns), TP_ARGS(policy, old_next_freq, new_next_freq, delta_ns)); +DECLARE_HOOK(android_vh_sugov_get_util, + TP_PROTO(unsigned int cpu, unsigned long *ret), + TP_ARGS(cpu, ret)); + struct em_perf_domain; DECLARE_HOOK(android_vh_em_cpu_energy, TP_PROTO(struct em_perf_domain *pd, diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c index fe914ba41832..2ee872716c5f 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -294,6 +294,11 @@ static unsigned long sugov_get_util(struct sugov_cpu *sg_cpu) struct rq *rq = cpu_rq(sg_cpu->cpu); unsigned long util = cpu_util_cfs(rq); unsigned long max = arch_scale_cpu_capacity(sg_cpu->cpu); + unsigned long ret = 0; + + trace_android_vh_sugov_get_util(sg_cpu->cpu, &ret); + if (ret) + return ret; sg_cpu->max = max; sg_cpu->bw_dl = cpu_bw_dl(rq);