[PATCH 3/5] cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
Thara Gopinath
thara.gopinath at linaro.org
Mon Oct 11 14:17:08 PDT 2021
On 10/7/21 4:07 AM, Lukasz Luba wrote:
> The thermal pressure signal gives information to the scheduler about
> reduced CPU capacity due to thermal. It is based on a value stored in
> a per-cpu 'thermal_pressure' variable. The online CPUs will get the
> new value there, while the offline won't. Unfortunately, when the CPU
> is back online, the value read from per-cpu variable might be wrong
> (stale data). This might affect the scheduler decisions, since it
> sees the CPU capacity differently than what is actually available.
>
> Fix it by making sure that all online+offline CPUs would get the
> proper value in their per-cpu variable when there is throttling
> or throttling is removed.
>
> Fixes: 275157b367f479 ("cpufreq: qcom-cpufreq-hw: Add dcvs interrupt support")
> Signed-off-by: Lukasz Luba <lukasz.luba at arm.com>
Thanks for the fix.
Reviewed-by: Thara Gopinath <thara.gopinath at linaro.org>
> ---
> drivers/cpufreq/qcom-cpufreq-hw.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c
> index a2be0df7e174..0138b2ec406d 100644
> --- a/drivers/cpufreq/qcom-cpufreq-hw.c
> +++ b/drivers/cpufreq/qcom-cpufreq-hw.c
> @@ -304,7 +304,8 @@ static void qcom_lmh_dcvs_notify(struct qcom_cpufreq_data *data)
> if (capacity > max_capacity)
> capacity = max_capacity;
>
> - arch_set_thermal_pressure(policy->cpus, max_capacity - capacity);
> + arch_set_thermal_pressure(policy->related_cpus,
> + max_capacity - capacity);
>
> /*
> * In the unlikely case policy is unregistered do not enable
>
--
Warm Regards
Thara (She/Her/Hers)
More information about the linux-arm-kernel
mailing list