Skip to content

cpufreq: intel_pstate: Make HWP calibration work on all hybrid platforms

Rafael J. Wysocki linux-acpi linux-pm lkml 1 version In review

Get series with b4
b4 am 2258064.ElGaqSPkdT@kreacher

Versions newest first

  1. v1 Latest2 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2cpufreq: intel_pstate: Read all MSRs on the target CPUdrivers/cpufreq/intel_pstate.c+33 -330 replies
2/2cpufreq: intel_pstate: hybrid: Use known scaling factor for P-coresdrivers/cpufreq/intel_pstate.c+15 -540 replies

Reviews trailers per patch

None of the 2 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchSrinivas Pandruvada
SeriesA-b T-b
1/2
2/2

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/2] cpufreq: intel_pstate: Make HWP calibration work on all hybrid platforms

Hi All,

The HWP calibration in intel_pstate is needed to map HWP performance levels to frequencies, which are used in the cpufreq sysfs interface, in a reliable way. On all non-hybrid "core" platforms it is sufficient to multiply the HWP performance levels by 100000 to obtain the corresponding frequencies, but on hybrid ones there is a difference between P-cores and E-cores.

Previous attempts to make this work were based on using CPPC (and in particular the nominal performance values provided by _CPC), but it turns out that the CPPC information is not sufficiently reliable for this purpose and the only way to do it is to use a hard-coded scaling factors for P-cores and for E-cores (which fortunately is the same as in the non-hybrid case). Fortunately, the same scaling factor for P-cores works on all of the hybrid platforms to date.

The first patch in the series ensures that all of the CPUs will use correct information from MSRs by avoiding the situations in which an MSR values read on one CPU will be used for performance scaling of another CPU.

The second one implements the approach outlined above.

Please see the changelogs for details.

Thanks!