[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201006071034.u65c5sphzwlvi6cs@vireshk-i7>
Date: Tue, 6 Oct 2020 12:40:34 +0530
From: Viresh Kumar <viresh.kumar@...aro.org>
To: Ionela Voinescu <ionela.voinescu@....com>
Cc: catalin.marinas@....com, sudeep.holla@....com, will@...nel.org,
linux@...linux.org.uk, rjw@...ysocki.net, dietmar.eggemann@....com,
valentin.schneider@....com, linux-pm@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] arm: disable frequency invariance for
CONFIG_BL_SWITCHER
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.voinescu@....com>
> Suggested-by: Dietmar Eggemann <dietmar.eggemann@....com>
> Cc: Russell King <linux@...linux.org.uk>
> Cc: Catalin Marinas <catalin.marinas@....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.kumar@...aro.org>
--
viresh
Powered by blists - more mailing lists