PM: EM: Add function for registering a PD without capacity update
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 5 Sep 2025 13:44:45 +0000 (15:44 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 10 Sep 2025 10:03:19 +0000 (12:03 +0200)
commite0423541477dfb684fbc6e6b5386054bc650f264
tree80be83ff5cd9568202c4fd317b068778a46e47d9
parent76eeb9b8de9880ca38696b2fb56ac45ac0a25c6c
PM: EM: Add function for registering a PD without capacity update

The intel_pstate driver manages CPU capacity changes itself and it does
not need an update of the capacity of all CPUs in the system to be
carried out after registering a PD.

Moreover, in some configurations (for instance, an SMT-capable
hybrid x86 system booted with nosmt in the kernel command line) the
em_check_capacity_update() call at the end of em_dev_register_perf_domain()
always fails and reschedules itself to run once again in 1 s, so
effectively it runs in vain every 1 s forever.

To address this, introduce a new variant of em_dev_register_perf_domain(),
called em_dev_register_pd_no_update(), that does not invoke
em_check_capacity_update(), and make intel_pstate use it instead of the
original.

Fixes: 7b010f9b9061 ("cpufreq: intel_pstate: EAS support for hybrid platforms")
Closes: https://lore.kernel.org/linux-pm/40212796-734c-4140-8a85-854f72b8144d@panix.com/
Reported-by: Kenneth R. Crudup <kenny@panix.com>
Tested-by: Kenneth R. Crudup <kenny@panix.com>
Cc: 6.16+ <stable@vger.kernel.org> # 6.16+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/intel_pstate.c
include/linux/energy_model.h
kernel/power/energy_model.c