AMD Schedutil vs. Performance Governor Benchmarks On Linux 5.11 Shows More Upside Potential

Written by Michael Larabel in Software on 27 January 2021 at 03:10 PM EST. Page 4 of 4. 22 Comments.
AMD Ryzen 9 5950X Linux 5.11 Schedutil vs. Performance
AMD Ryzen 9 5950X Linux 5.11 Schedutil vs. Performance
AMD Ryzen 9 5950X Linux 5.11 Schedutil vs. Performance

For the workloads where the resulting performance was basically the same, the CPU power consumption was obviously very similar.

AMD Ryzen 9 5950X Linux 5.11 Schedutil vs. Performance
AMD Ryzen 9 5950X Linux 5.11 Schedutil vs. Performance
AMD Ryzen 9 5950X Linux 5.11 Schedutil vs. Performance

When noting the Linux 5.11 regression weeks ago, some also alleged that the performance governor leads to a lot of wasted energy... At least as far as modern kernels go, this isn't the case. As shown with the power readings from single or lightly threaded workloads, the performance governor tended to align with the Schedutil power results.

AMD Ryzen 9 5950X Linux 5.11 Schedutil vs. Performance

Lastly ls a look at the CPU power consumption reported by AMD_Energy over the span of the 147 test cases ran on this EPYC 7F72 2P server... Running all these tests multiple times and the other Phoronix Test Suite practices was about a 16 hour run-time. Like with the geometric mean being quite close, the CPU power consumption wasn't all that different. The average CPU power consumption of the two EPYC 7F72 CPUs for these tests was 280 Watts for Schedutil and 285 Watts for the performance governor.

Those wanting to dive into the EPYC 7F72 2P performance vs. schedutil benchmark and power data in full can find it via OpenBenchmarking.org.

For most workloads, the CPUFreq Schedutil governor on Linux 5.11 (once the recent frequency invariance patch lands, which was patched into our kernel build) tends to perform pretty close to the performance governor. There are some exceptions but improvements are being made.

Giovanni Gherdovich of SUSE who wrote the AMD frequency invariance support noted on the recent patch, "The solution we implement here is a stop-gap one: when the driver is acpi_cpufreq and the machine an AMD EPYC, schedutil will use max_boost instead of max_P as the value for freq_max in its formula freq_next = 1.25 * freq_max * util essentially giving freq_next some more headroom to grow in the over-utilized case. This is the approach also followed by intel_pstate in passive mode. The correct way to attack this problem would be to have schedutil detect over-utilization and select freq_max irrespective of the util value, which has no meaning at that point. This approach is too risky for an -rc5 submission so we defer it to the next cycle."

So more improvements are coming down the pipe eventually. There also is the AMD CPPC CPUFreq driver implementation that we'll see if it gets revived this year (the AMD frequency invariance support is tieing into the CPPC information as noted in prior articles). In any case and long story short, the Linux 5.11 performance continues looking better with the pending patch and better off than prior stable series if using the Schedutil governor. Further kernel optimizations will also help in allowing Schedutil to compete even closer with the performance governor results.

If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.


Related Articles
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com 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 OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.