[PATCH v4 0/3] cpufreq: cppc: Handle Highest Performance changes at runtime

From: Xueqin Luo

Date: Mon Jun 08 2026 - 06:24:08 EST


Hi Rafael, Pierre,

This series adds support for handling ACPI CPPC Highest Performance
register changes at runtime, triggered by Notify(0x85) on a processor
device.

When the platform changes the Highest Performance value (e.g. due to
thermal or power budget adjustments), the OSPM must re-evaluate the
cached capability and propagate the change to the cpufreq policy,
the scheduler's CPU capacity model, and the frequency invariance
engine.

The series is split into three patches:
Patch 1: Core update_limits callback implementation.
Patch 2: Refactor autonomous perf bounds into a reusable helper
and wire it into update_limits with error logging.
Patch 3: Topology subsystem runtime capacity updates with
concurrent-safe normalization.

v3 -> v4:
- Do not set policy->max directly; use refresh_frequency_limits()
to let the cpufreq core update it through cpufreq_set_policy()
(Rafael)
- Re-evaluate policy->boost_supported when highest_perf changes,
as boost capability depends on highest_perf > nominal_perf
(Rafael)
- Add topology capacity runtime update: introduce
topology_update_cpu_capacity() to refresh raw_capacity,
capacity_freq_ref, and the normalized CPU capacity scale
(Pierre)
- Refactor autonomous selection performance bounds programming
into cppc_cpufreq_set_autonomous_perf() helper, reused by both
store_auto_select() and update_limits()
- Add pr_debug error logging when autonomous perf update fails

Xueqin Luo (3):
cpufreq: cppc: Add update_limits support for Highest Performance
changes
cpufreq: cppc: Refactor autonomous perf bounds into helper
arch_topology: Add topology_update_cpu_capacity() for runtime updates

drivers/base/arch_topology.c | 70 ++++++++++++++++++++++
drivers/cpufreq/cppc_cpufreq.c | 102 ++++++++++++++++++++++++++++-----
include/linux/arch_topology.h | 4 ++
3 files changed, 163 insertions(+), 13 deletions(-)

--
2.43.0