Significant Performance & Perf-Per-Watt Gains Coming For Intel CPUs On Linux Schedutil

Written by Michael Larabel in Intel on 1 October 2019 at 07:03 AM EDT. 13 Comments
INTEL
Sadly not making it for the just-closed Linux 5.4 merge window but hopefully something we could see in Linux 5.5 is recent patches on "frequency invariance" in optimizing the Schedutil frequency scaling governor that will really benefit Intel CPUs and improve their performance by double digits.

In September there were revised patches from Giovanni Gherdovich based on work proposed earlier by Peter Zijlstra around frequency invariance with the x86 scheduler code to correct some behavior in the code that's surprisingly lasted this long. "For example; suppose a CPU has two frequencies: 500 and 1000 Mhz. When running a task that would consume 1/3rd of a CPU at 1000 MHz, it would appear to consume 2/3rd (or 66.6%) when running at 500 MHz, giving the false impression this CPU is almost at capacity, even though it can go faster. In a nutshell, without frequency scale-invariance tasks look larger just because the CPU is running slower."

Correcting this behavior improves the Schedutil governor in particular that makes use of the kernel's scheduler utilization data for deciding about the CPU performance/power state changes. The patches have been found to provide better performance and performance-per-Watt especially with lightly-loaded systems.

Shell intensive scripts saw performance improvements in the range of 10~40% while other workloads were commonly up to 10%. The power efficiency also improves as a result of this work.

Hopefully these patches will make it to mainline soon (Linux 5.5 at the earliest). Improvements are also still expected for addressing the MSRs of other select generations of Intel CPUs (Xeon Scalable not covered yet). Fortunately, no regressions have been uncovered yet.


This is great to see as well with Schedutil generally performing worse than P-State in our own tests. Meanwhile, kernel developers are hoping for a future where Schedutil could potentially replace the other existing frequency scaling governors.

And, yes, as time allows I'll be benchmarking these patches with more extensive numbers.
Related News
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.

Popular News This Week