Linux 6.5 With AMD P-State EPP Default Brings Performance & Power Efficiency Benefits For Ryzen Servers
With the new Linux 6.5 kernel stable series one of the many new features is defaulting to the AMD P-State driver with the EPP/active mode compared to the long-used default of the ACPI CPUFreq driver. As shown in various Phoronix articles this can help with the mobile/desktop performance with this new default change while this article is looking at the Ryzen server benefits too.
Linux 6.5 is defaulting to the AMD P-State EPP driver for Zen 2 and newer Ryzen systems. The system must support ACPI CPPC for the AMD P-State driver to be supported. Currently the AMD EPYC server processors continue to make use of ACPI CPUFreq by default. In any event given the increasing interest around AMD Ryzen 7000 series for budget and SOHO/SMB servers, I was curious about the performance impact of Linux 6.5 with more server workloads.
Today's article is looking at the performance of Linux 6.4 against Linux 6.5, both out-of-the-box and using the Ubuntu Mainline Kernel PPA for easy reproducibility. Out of the box means going from ACPI CPUFreq Schedutil (the scheduler utilization governor) on Linux 6.4 to now finding modern Ryzen systems with AMD P-State EPP and defaulting to the "powersave" governor. A secondary run was done on both kernel versions while setting to the "performance" governor each time in aiming for maximum performance. AMD P-State is available on prior Linux kernel versions but isn't set to be used out-of-the-box until Linux 6.5+ -- those wishing to experiment on older kernels of Linux 6.3+ can boot with the amd_pstate=active kernel option.
This round of testing was done with the ASRock Rack 1U4LW-B650/2L2T, which is a 1U Ryzen AM5 server platform that supports the Ryzen 7000 series processors and ECC memory. See my earlier Ryzen 7000 series server testing for more information on that platform and on the AMD AM5 server offerings in general.
No other changes were made to the server during testing besides swapping out the Linux kernel in use and then the secondary runs with the performance governor. The CPU clock frequency differences in the automated system table amount to just sysfs reporting differences between the CPU frequency scaling drivers of showing base versus boost frequencies via the same sysfs interfaces - the Ryzen 9 7900 was obviously running at stock frequencies throughout all of the testing.