[PATCH v4 0/5] Refactor thermal pressure update to avoid code duplication
Viresh Kumar
viresh.kumar at linaro.org
Tue Nov 23 01:45:15 PST 2021
On 09-11-21, 19:57, Lukasz Luba wrote:
> Hi all,
>
> This patch set v4 aims to refactor the thermal pressure update
> code. There are already two clients which do similar thing:
> convert the capped frequency value into the capacity of
> affected CPU and call the 'set' function to store the
> reduced capacity into the per-cpu variable.
> There might be more than two of these users. In near future
> it will be scmi-cpufreq driver, which receives notification
> from FW about reduced frequency due to thermal. Other vendors
> might follow. Let's avoid code duplication and potential
> conversion bugs. Move the conversion code into the arch_topology.c
> where the capacity calculation setup code and thermal pressure sit.
>
> Apart from that $subject patches, there is one patch (3/5) which fixes
> issue in qcom-cpufreq-hw.c when the thermal pressure is not
> updated for offline CPUs. It's similar fix that has been merged
> recently for cpufreq_cooling.c:
> 2ad8ccc17d1e4270cf65a3f2
>
> The patch 4/5 fixes also qcom-cpufreq-hw.c driver code which did
> the translation from frequency to capacity wrongly when there
> was a boost frequency available and stored in 'policy->cpuinfo.max_freq'.
>
> Changes:
> v4:
> - remove the warning when boost frequency is passed and set thermal
> pressure to 0 in that case, which means the capping is totally removed
> (issue reported by Steev)
> - remove the check from patch 4/5 with
> 'throttled_freq > policy->cpuinfo.max_freq' since it doesn't have
> effect; instead relay on new arch_update_thermal_pressure() handling
> correctly such use case; this would also fix an issue in that original
> driver code, where the reduced capacity was calculated wrongly due
> to 'policy->cpuinfo.max_freq' used as a divider
> - adjusted comments stressing the fact that the boost frequencies are
> supported
> Lukasz Luba (5):
> arch_topology: Introduce thermal pressure update function
> thermal: cpufreq_cooling: Use new thermal pressure update function
> cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure
> cpufreq: qcom-cpufreq-hw: Use new thermal pressure update function
> arch_topology: Remove unused topology_set_thermal_pressure() and
> related
>
> arch/arm/include/asm/topology.h | 2 +-
> arch/arm64/include/asm/topology.h | 2 +-
> drivers/base/arch_topology.c | 42 ++++++++++++++++++++++++++++---
> drivers/cpufreq/qcom-cpufreq-hw.c | 14 +++--------
> drivers/thermal/cpufreq_cooling.c | 6 +----
> include/linux/arch_topology.h | 4 +--
> include/linux/sched/topology.h | 6 ++---
> init/Kconfig | 2 +-
> 8 files changed, 50 insertions(+), 28 deletions(-)
Applied. Thanks.
--
viresh
More information about the linux-arm-kernel
mailing list