On 24-09-20, 13:30, Ionela Voinescu wrote: > big.LITTLE switching complicates the setting of a correct cpufreq-based > frequency invariance scale factor due to (as observed in > drivers/cpufreq/vexpress-spc-cpufreq.c): > - Incorrect current and maximum frequencies as a result of the > exposure of a virtual frequency table to the cpufreq core, > - Missed updates as a result of asynchronous frequency adjustments > caused by frequency changes in other CPU pairs. > > Given that its functionality is atypical in regards to frequency > invariance and this is an old technology, disable frequency > invariance for when big.LITTLE switching is configured in to prevent > incorrect scale setting. > > Signed-off-by: Ionela Voinescu <ionela.voine...@arm.com> > Suggested-by: Dietmar Eggemann <dietmar.eggem...@arm.com> > Cc: Russell King <li...@armlinux.org.uk> > Cc: Catalin Marinas <catalin.mari...@arm.com> > --- > arch/arm/include/asm/topology.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/arm/include/asm/topology.h b/arch/arm/include/asm/topology.h > index e5e3d5ce4d55..470299ee2fba 100644 > --- a/arch/arm/include/asm/topology.h > +++ b/arch/arm/include/asm/topology.h > @@ -7,10 +7,13 @@ > #include <linux/cpumask.h> > #include <linux/arch_topology.h> > > +/* big.LITTLE switcher is incompatible with frequency invariance */ > +#ifndef CONFIG_BL_SWITCHER > /* Replace task scheduler's default frequency-invariant accounting */ > #define arch_set_freq_scale topology_set_freq_scale > #define arch_scale_freq_capacity topology_get_freq_scale > #define arch_scale_freq_invariant topology_scale_freq_invariant > +#endif > > /* Replace task scheduler's default cpu-invariant accounting */ > #define arch_scale_cpu_capacity topology_get_cpu_scale
Acked-by: Viresh Kumar <viresh.ku...@linaro.org> -- viresh