diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2020-10-05 14:12:02 +0300 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2020-10-05 14:12:02 +0300 |
commit | fccd2f0e629b357437bebc015810f7f1957a4643 (patch) | |
tree | 4d0cc002fb0e0d487e66d205f115737f37933b98 /arch/arm64 | |
parent | fc7d17551f776fda243493ce59894c1eec2a339f (diff) | |
parent | 15e5d5b45b2b7072214af519357a1c0af078c50b (diff) | |
download | linux-fccd2f0e629b357437bebc015810f7f1957a4643.tar.xz |
Merge back cpufreq material for 5.10.
Diffstat (limited to 'arch/arm64')
-rw-r--r-- | arch/arm64/include/asm/topology.h | 1 | ||||
-rw-r--r-- | arch/arm64/kernel/topology.c | 9 |
2 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm64/include/asm/topology.h b/arch/arm64/include/asm/topology.h index e042f6527981..7cb519473fbd 100644 --- a/arch/arm64/include/asm/topology.h +++ b/arch/arm64/include/asm/topology.h @@ -27,6 +27,7 @@ void topology_scale_freq_tick(void); /* Replace task scheduler's default frequency-invariant accounting */ #define arch_scale_freq_capacity topology_get_freq_scale +#define arch_scale_freq_invariant topology_scale_freq_invariant /* Replace task scheduler's default cpu-invariant accounting */ #define arch_scale_cpu_capacity topology_get_cpu_scale diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c index 0801a0f3c156..4064d39bb66d 100644 --- a/arch/arm64/kernel/topology.c +++ b/arch/arm64/kernel/topology.c @@ -246,6 +246,13 @@ static int __init init_amu_fie(void) static_branch_enable(&amu_fie_key); } + /* + * If the system is not fully invariant after AMU init, disable + * partial use of counters for frequency invariance. + */ + if (!topology_scale_freq_invariant()) + static_branch_disable(&amu_fie_key); + free_valid_mask: free_cpumask_var(valid_cpus); @@ -253,7 +260,7 @@ free_valid_mask: } late_initcall_sync(init_amu_fie); -bool arch_freq_counters_available(struct cpumask *cpus) +bool arch_freq_counters_available(const struct cpumask *cpus) { return amu_freq_invariant() && cpumask_subset(cpus, amu_fie_cpus); |