AMD has been working this past year on a P-State EPP driver in an attempt to improve efficiency on Linux. This is an update to the currently used ACPI CPUFreq driver.
AMD plans to provide much more performance per each watt consumed on Zen2 and newer Ryzen/EPYC CPUs with this driver. The older version, P-State was notorious of not performing up to the mark against ACPI CPUFreq, sometimes even being slower.
The New P-State EPP Driver
AMD’s P-State and P-State EPP leverage the ACPI Collaborative Processor Performance Control (CPPC) functionality available on Zen2 and newer processors. The latest iteration, P-State EPP irons out the issues faced by the previous version.
P-State EPP is a extension to its predecessor’s frequency scaling driver via ACPI CPPC’s Energy Preference Performance (EPP) that signals the hardware to choose between efficiency and performance.
This patchset implements one new AMD CPU frequency driver “amd-pstate-epp” instance for better performance and power control. CPPC has a parameter called energy preference performance (EPP). The EPP is used in the CCLK DPM controller to drive the frequency that a core is going to operate during short periods of activity. EPP values will be utilized for different OS profiles (balanced, performance, power savings).
Energy Performance Preference (EPP) provides a hint to the hardware if software wants to bias toward performance (0x0) or energy efficiency (0xff) The lowlevel power firmware will calculate the runtime frequency according to the EPP preference value So the EPP hint will impact the CPU cores frequency responsiveness.
Users can find AMD’s latest implementation through the kernel mailing list. This release fixes a few bugs and formatting issues in the code. As this driver is late to the party, we may not see a proper implementation by at least Linux 6.2 which is set to arrive in 2023. Thanks to Phoronix for providing us with the adequate information.