AMD P-State EPP Driver Updated For More Power/Performance Control On Linux

Written by Michael Larabel in AMD on 11 November 2022 at 07:00 AM EST. 1 Comment
Back in September AMD posted the Linux driver patches for P-State EPP as their latest effort to improve the power efficiency of Ryzen and EPYC processors. Sent out this week is now the fourth iteration of those CPU frequency scaling driver patches.

AMD P-State EPP is an evolution of the AMD P-State driver code they've been working on the past year. P-State EPP (Energy Performance Preference) aims to further enhance the performance and power control for modern Zen laptops, desktops, and servers.

The AMD P-State EPP driver extends the initial P-State CPU frequency scaling driver implementation by making use of ACPI CPPC's Energy Preference Performance (EPP) information that is a hint to the hardware whether the software prefers a bias to performance or energy efficiency. Benchmark results provided by AMD with their initial P-State EPP patches using an AMD EPYC "Rome" (Zen 2) server showed this new driver code delivering significantly better performance-per-Watt than amd-pstate (passive) or acpi-cpufreq across various governors.

With the v4 patches there is additional code changes as a result of the code review process, allow setting the amd-pstate driver more easily via a kernel parameter, and other fixes.

The AMD P-State EPP v4 patches are now out for review via this kernel mailing list thread.

With the latest patch revisions, the AMD P-State EPP functionality on patched kernels can be enabled by setting the "amd-pstate=active" option as a kernel argument. The energy performance preference can then be controlled at runtime via the /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference interface. As with passive AMD P-State, this functionality requires Zen 2 CPUs and newer due to dependence on ACPI CPPC.

It will be very interesting to put this P-State EPP driver through some rigorous testing as it nears the mainline kernel. It will also be interesting to see how well AMD P-State EPP works out for the just-announced AMD EPYC 4th Gen "Genoa" processors -- see my EPYC 9654/9554 Linux review from yesterday in case you missed it.

Not directly related to this AMD P-State EPP work, but this week AMD also posted Linux kernel patches to provide new infrastructure around hardware sleep state time. This infrastructure would work for both AMD and Intel CPUs to be able to report the amount of time spent in suspend-to-idle (s2idle) sleep states. Exposed conveniently via sysfs would be the duration of the hardware sleep state and the total sleep duration of the system since it was booted. User-space can then query this information after s2idle for evaluating the amount of time spent in a hardware sleep state. More details on that separate kernel work via this patch series.
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