cpufreq: intel_pstate: Update cpuinfo.max_freq on HWP_CAP changes
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 17 Dec 2021 19:06:08 +0000 (20:06 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 22 Dec 2021 17:36:07 +0000 (18:36 +0100)
commitdfeeedc1bf5772226bddf51ed3f853e5a6707bf1
treefea54c4c9944fdb2ac688e6c185bd916c834f650
parent521223d8b3ec078f670c7c35a1a04b1b2af07966
cpufreq: intel_pstate: Update cpuinfo.max_freq on HWP_CAP changes

With HWP enabled, when the turbo range of performance levels is
disabled by the platform firmware, the CPU capacity is given by
the "guaranteed performance" field in MSR_HWP_CAPABILITIES which
is generally dynamic.  When it changes, the kernel receives an HWP
notification interrupt handled by notify_hwp_interrupt().

When the "guaranteed performance" value changes in the above
configuration, the CPU performance scaling needs to be adjusted so
as to use the new CPU capacity in computations, which means that
the cpuinfo.max_freq value needs to be updated for that CPU.

Accordingly, modify intel_pstate_notify_work() to read
MSR_HWP_CAPABILITIES and update cpuinfo.max_freq to reflect the
new configuration (this update can be carried out even if the
configuration doesn't actually change, because it simply doesn't
matter then and it takes less time to update it than to do extra
checks to decide whether or not a change has really occurred).

Reported-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tested-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/intel_pstate.c