* [PATCH v1] cpufreq: intel_pstate: Set non-turbo capacity to HWP_GUARANTEED_PERF()
@ 2026-07-07 17:19 Rafael J. Wysocki
2026-07-07 20:47 ` Ricardo Neri
0 siblings, 1 reply; 2+ messages in thread
From: Rafael J. Wysocki @ 2026-07-07 17:19 UTC (permalink / raw)
To: Linux PM; +Cc: LKML, Srinivas Pandruvada, Ricardo Neri
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Setting cpu->capacity_perf to cpu->pstate.max_pstate_physical in the
"no turbo" case is inconsistent with what happens elsewhere in the
driver and causes arch_scale_cpu_capacity() to be incorrect. It also
skews arch_scale_freq_capacity() which ends up differing from 1024 for
the guaranteed P-state.
Address that by setting capacity_perf to HWP_GUARANTEED_PERF() in the
"no turbo" case.
Fixes: 929ebc93ccaa ("cpufreq: intel_pstate: Set asymmetric CPU capacity on hybrid systems")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: All applicable <stable@vger.kernel.org>
---
drivers/cpufreq/intel_pstate.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -1007,12 +1007,14 @@ static void hybrid_clear_cpu_capacity(un
static void hybrid_get_capacity_perf(struct cpudata *cpu)
{
+ u64 hwp_cap = READ_ONCE(cpu->hwp_cap_cached);
+
if (READ_ONCE(global.no_turbo)) {
- cpu->capacity_perf = cpu->pstate.max_pstate_physical;
+ cpu->capacity_perf = HWP_GUARANTEED_PERF(hwp_cap);
return;
}
- cpu->capacity_perf = HWP_HIGHEST_PERF(READ_ONCE(cpu->hwp_cap_cached));
+ cpu->capacity_perf = HWP_HIGHEST_PERF(hwp_cap);
}
static void hybrid_set_capacity_of_cpus(void)
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH v1] cpufreq: intel_pstate: Set non-turbo capacity to HWP_GUARANTEED_PERF()
2026-07-07 17:19 [PATCH v1] cpufreq: intel_pstate: Set non-turbo capacity to HWP_GUARANTEED_PERF() Rafael J. Wysocki
@ 2026-07-07 20:47 ` Ricardo Neri
0 siblings, 0 replies; 2+ messages in thread
From: Ricardo Neri @ 2026-07-07 20:47 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: Linux PM, LKML, Srinivas Pandruvada
On Tue, Jul 07, 2026 at 07:19:55PM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Setting cpu->capacity_perf to cpu->pstate.max_pstate_physical in the
> "no turbo" case is inconsistent with what happens elsewhere in the
> driver and causes arch_scale_cpu_capacity() to be incorrect. It also
> skews arch_scale_freq_capacity() which ends up differing from 1024 for
> the guaranteed P-state.
>
> Address that by setting capacity_perf to HWP_GUARANTEED_PERF() in the
> "no turbo" case.
Indeed, using cpu->pstate.max_pstate_physical does not make sense. It only
reflects what PLATFORM_INFO[15:8] says for _all_ CPUs, regardless of type,
resized by cpu->pstate.scaling/cpu->pstate.perf_ctl_scaling. No relation
to any property of the CPU.
Now arch_scale_freq_capacity() looks correct.
>
> Fixes: 929ebc93ccaa ("cpufreq: intel_pstate: Set asymmetric CPU capacity on hybrid systems")
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-07 20:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-07 17:19 [PATCH v1] cpufreq: intel_pstate: Set non-turbo capacity to HWP_GUARANTEED_PERF() Rafael J. Wysocki
2026-07-07 20:47 ` Ricardo Neri
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox