Intel P-State With Linux 5.9 Adds Passive Mode With Hardware P-States

Written by Michael Larabel in Intel on 15 August 2020 at 11:47 AM EDT. 3 Comments
Merged last week to Linux 5.9 were the main set of power management updates while hitting the kernel now are some last minute power-related changes.

Intel power management maintainer Rafael Wysocki for a while now has been working on allowing the P-State CPU frequency scaling driver to work in its passive mode when hardware p-states (HWP) is enabled for the system. That support is now deemed ready for mainline and will be available with Linux 5.9. Here's how he sums up that work with P-State passive mode already being available for non-HWP systems but with HWP the differences include:
Allow intel_pstate to work in the passive mode with HWP enabled and make it set the HWP minimum performance limit (HWP floor) to the P-state value given by the target frequency supplied by the cpufreq governor, so as to prevent the HWP algorithm and the CPU scheduler from working against each other, at least when the schedutil governor is in use, and update the intel_pstate documentation accordingly.

Among other things, this allows utilization clamps to be taken into account, at least to a certain extent, when intel_pstate is in use and makes it more likely that sufficient capacity for deadline tasks will be provided.

After this change, the resulting behavior of an HWP system with intel_pstate in the passive mode should be close to the behavior of the analogous non-HWP system with intel_pstate in the passive mode, except that the HWP algorithm is generally allowed to make the CPU run at a frequency above the floor P-state set by intel_pstate in the entire available range of P-states, while without HWP a CPU can run in a P-state above the requested one if the latter falls into the range of turbo P-states (referred to as the turbo range) or if the P-states of all CPUs in one package are coordinated with each other at the hardware level.

[Note that in principle the HWP floor may not be taken into account by the processor if it falls into the turbo range, in which case the processor has a license to choose any P-state, either below or above the HWP floor, just like a non-HWP processor in the case when the target P-state falls into the turbo range.]

With this change applied, intel_pstate in the passive mode assumes complete control over the HWP request MSR and concurrent changes of that MSR (eg. via the direct MSR access interface) are overridden by it.

That lone change was sent in on Friday. Rafael also sent in more ACPI changes that amount to minor clock changes for AMD APUs.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week