Re: [PATCH] cpufreq: vexpress-spc: Fix wrong alternation of policy->related_cpus during CPU hp
From: Sudeep Holla <hidden>
Date: 2019-11-27 12:10:31
Also in:
linux-pm, lkml
On Wed, Nov 27, 2019 at 05:37:44PM +0530, Viresh Kumar wrote:
On 27-11-19, 12:48, Dietmar Eggemann wrote:quoted
Since commit ca74b316df96 ("arm: Use common cpu_topology structure and functions.") the core cpumask has to be modified during cpu hotplug operations. ("arm: Fix topology setup in case of CPU hotplug for CONFIG_SCHED_MC") [1] fixed that but revealed another issue on TC2, i.e in its cpufreq driver. During CPU hp stress operations on multiple CPUs, policy->related_cpus can be altered. This is wrong since this cpumask should contain the online and offline CPUs. The WARN_ON(!cpumask_test_cpu(cpu, policy->related_cpus)) in cpufreq_online() triggers in this case. The core cpumask can't be used to set the policy->cpus in ve_spc_cpufreq_init() anymore in case it is called via cpuhp_cpufreq_online()->cpufreq_online()->cpufreq_driver->init(). An empty online() callback can be used to avoid that the init() driver function is called during CPU hotplug in so that policy->related_cpus will not be changed. Implementing an online() also requires an offline() callback. Tested on TC2 with CPU hp stress test (CPU hp from multiple CPUs at the same time). [1] https://lore.kernel.org/r/20191127103353.12417-1-dietmar.eggemann@arm.com (local) Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>Wanna provide any fixes tag ?quoted
--- drivers/cpufreq/vexpress-spc-cpufreq.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)This is 5.5 material or 5.6 ?
v5.5 for sure, broken even on v5.4 but unless someone really cares for stable on TC2, I am happy to skip it. -- Regards, Sudeep _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel