diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c index 877c68f47282..856a367a8294 100644 --- a/arch/arm64/kernel/topology.c +++ b/arch/arm64/kernel/topology.c @@ -22,6 +22,8 @@ #include #include +#include + #ifdef CONFIG_ACPI static bool __init acpi_cpu_is_threaded(int cpu) { @@ -163,6 +165,11 @@ static void amu_scale_freq_tick(void) { u64 prev_core_cnt, prev_const_cnt; u64 core_cnt, const_cnt, scale; + bool use_amu_fie = true; + + trace_android_vh_use_amu_fie(&use_amu_fie); + if(!use_amu_fie) + return; prev_const_cnt = this_cpu_read(arch_const_cycles_prev); prev_core_cnt = this_cpu_read(arch_core_cycles_prev); diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index d0c1738103dd..f6f4a0e7db0f 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -289,3 +289,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_do_madvise_blk_plug); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_inactive_list_blk_plug); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_shrink_lruvec_blk_plug); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_reclaim_pages_plug); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_use_amu_fie); diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c index 7bf0553afa82..729e60c812a9 100644 --- a/drivers/base/arch_topology.c +++ b/drivers/base/arch_topology.c @@ -29,6 +29,12 @@ static bool scale_freq_invariant; static bool supports_scale_freq_counters(const struct cpumask *cpus) { + bool use_amu_fie = true; + + trace_android_vh_use_amu_fie(&use_amu_fie); + if (!use_amu_fie) + return false; + return cpumask_subset(cpus, &scale_freq_counters_mask); } diff --git a/include/trace/hooks/topology.h b/include/trace/hooks/topology.h index c18eef908863..47bc431b789c 100644 --- a/include/trace/hooks/topology.h +++ b/include/trace/hooks/topology.h @@ -20,6 +20,10 @@ DECLARE_HOOK(android_vh_update_topology_flags_workfn, TP_PROTO(void *unused), TP_ARGS(unused)); +DECLARE_HOOK(android_vh_use_amu_fie, + TP_PROTO(bool *use_amu_fie), + TP_ARGS(use_amu_fie)); + #endif /* _TRACE_HOOK_TOPOLOGY_H */ /* This part must be outside protection */ #include