Power management fixes for 7.2-rc4

- Make cpufreq_update_pressure() use cpuinfo.max_freq as the default
    reference frequency when arch_scale_freq_ref() returns 0 to allow
    the scheduler to still take CPU frequency caps into account in those
    cases (Rafael Wysocki)
 
  - Use the HWP guaranteed performance level as the full capacity
    performance in intel_pstate on hybrid systems when turbo frequencies
    are not allowed to be used to make scale-invariance work as expected
    in those cases (Rafael Wysocki)
 -----BEGIN PGP SIGNATURE-----
 
 iQFGBAABCAAwFiEEcM8Aw/RY0dgsiRUR7l+9nS/U47UFAmpY4CcSHHJqd0Byand5
 c29ja2kubmV0AAoJEO5fvZ0v1OO1nTgH+QHXf2KIXDZBVn3iroiZbdPF9h6iBfnh
 XKn1wahWy/d41leF1g19yQL5UD+dztKRnn4Ek5ihMT7doAgqpCYAR//s/e5IDHai
 FVoFhyiNoxlbm1A7qbq4F1X4tlnU1mfIj676W+SKa7Hn1KMnRL9kerJGsS6oq6cH
 L56snK9LOxSYDXDjYqBZQtg7W3GVoqw0pjWdKMVU3faTHTl4SuTAfoHFNHSd2dMh
 oZd9xKPWxGPOwKctmrWb4MpwW2eMJNrclWnpixPhAfXRPWm5qvZm/jtroSZ2y5pN
 nHrd2jTHiINnaiqMzZgvydVIy5XgXx9Ero7+/Syw2NBEcHQ1KcocQTg=
 =dMjb
 -----END PGP SIGNATURE-----

Merge tag 'pm-7.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull power management fixes from Rafael Wysocki:
 "These fix two cpufreq issues, one in the intel_pstate driver and one
  in the core:

   - Make cpufreq_update_pressure() use cpuinfo.max_freq as the default
     reference frequency when arch_scale_freq_ref() returns 0 to allow
     the scheduler to still take CPU frequency caps into account in
     those cases (Rafael Wysocki)

   - Use the HWP guaranteed performance level as the full capacity
     performance in intel_pstate on hybrid systems when turbo
     frequencies are not allowed to be used to make scale-invariance
     work as expected in those cases (Rafael Wysocki)"

* tag 'pm-7.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  cpufreq: Make cpufreq_update_pressure() fall back to cpuinfo.max_freq
  cpufreq: intel_pstate: Set non-turbo capacity to HWP_GUARANTEED_PERF()
This commit is contained in:
Linus Torvalds 2026-07-16 09:27:05 -07:00
commit 6f5156d7a3
2 changed files with 7 additions and 2 deletions

View File

@ -2586,6 +2586,9 @@ static void cpufreq_update_pressure(struct cpufreq_policy *policy)
cpu = cpumask_first(policy->related_cpus);
max_freq = arch_scale_freq_ref(cpu);
if (!max_freq)
max_freq = policy->cpuinfo.max_freq;
capped_freq = policy->max;
/*

View File

@ -1058,12 +1058,14 @@ static void hybrid_clear_cpu_capacity(unsigned int cpunum)
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)