The AMD P-State Linux kernel driver for CPU frequency scaling with modern Ryzen processors has been working out quite well and proving very effective over the prior ACPI CPUFreq generic driver use. Beyond recently being extended to becoming the default for EPYC 9005 “Turin” processrs, AMD P-State has recently been seeing some patches for additional feature work.
Two new features being worked on recently for the AMD P-State driver include Dynamic EPP and Raw EPP.
The Dynamic Energy Performance Preference (EPP) allows manipulating the state based upon the user’s preference combined with the system’s power adapter state. Namely for AMD Ryzen laptops this allows altering the AMD P-State driver preference when switching over to battery power or returning to AC wall power. For non-server systems the default EPP when on AC power will be “performance” but switching over to “balance_performance” when on battery power. The behavior can be modified via the /sys/devices/system/cpu/cpufreq/policyX/dynamic_epp sysfs file.
The other feature being worked on concurrently is Raw EPP support for AMD P-State to allow specifying the 0 to 255 EPP value via sysfs. This easily communicating of the desired energy performance preference value can be done via the energy_performance_preference attribute. A lower value indicates a bias toward performance while a higher value shifts the bias toward power savings.
The Raw EPP and Dynamic EPP features for AMD P-State continue to be worked on but for those interested there is the v4 patches out today containing the latest patches. Hopefully the patches will be ready soon for the mainline kernel though given the current timing are likely to miss out on the v6.15 merge window.