Re: [PATCH v4 2/2] arch_topology: use the boost frequencies for capacity_freq_ref
From: Dietmar Eggemann
Date: Thu Sep 17 2026 - 11:45:32 EST
On 17.09.26 14:51, Oleg Keri wrote:
> capacity_freq_ref is latched from policy->cpuinfo.max_freq by
> init_cpu_capacity_callback() on CPUFREQ_CREATE_POLICY.
> cpufreq_frequency_table_cpuinfo() excludes CPUFREQ_BOOST_FREQ entries
> while boost is disabled, so on a system that boots with boost off the
> reference is the non-boost maximum and stays there.
>
> Once boost is enabled the CPU runs above its reference. On arm64, where
> the AMU drives frequency invariance, amu_scale_freq_tick() caps the scale
> at SCHED_CAPACITY_SCALE, so the scheduler cannot tell a boosted CPU from
> one at the sustained maximum, and arch_freq_get_on_cpu() cannot report
> above the reference, so cpuinfo_avg_freq is pinned to it.
>
> CPPC based systems do not have the problem: their reference comes from
> highest_perf, and a disabled boost shows up as cpufreq pressure. Do the
> same for frequency table drivers and take the highest valid table entry,
> boost entries included, as the reference. With boost off
> cpufreq_update_pressure() then reports the difference as pressure.
Ah, you want to fix this for 'frequency table' drivers.
IMHO,
https://lore.kernel.org/r/20260908-schedutil-boost-frequency-handling-v2-0-25312a713699@xxxxxxxxxxxxxxxx
is trying the same at the moment.
[...]