Linux 4.7 CPUFreq Schedutil Testing vs. P-State
With the in-development Linux 4.7 kernel there is a new CPUFreq governor that leverages the kernel's scheduler utilization data in an attempt to make better decisions about adjusting the CPU's frequency / performance state. Here are some benchmarks of that new CPUFreq governor, Schedutil, compared to the other CPUFreq governors as well as the Intel P-State CPU frequency scaling driver.
Once the new Schedutil governor landed this week, I proceeded to run some early, real-world benchmarks to see how it compares to the other governors as well as P-State on an Intel Xeon E5-2687W v3 Haswell system. I spun my own 4.7 Git kernel for Ubuntu as the current Ubuntu Linux Mainline PPA packages don't set the Kconfig option for building this new CPUFreq governor (CONFIG_CPU_FREQ_GOV_SCHEDUTIL). I compared the Schedutil results to Ondemand, COnservative, Powersave, and Performance with the ACPI CPUFreq driver. I also tested the Powersave and Performance governors with Intel's P-State code.
The same system was used during testing. For those new to the scene, the reported CPU frequency difference just comes down to CPUFreq showing the base clock frequency via sysfs where as via the same interface the P-State driver shows the turbo frequency.
As my WattsUp Pro USB power monitor was busy with another system during this testing (doing the performance-per-Watt Linux GPU testing), this article is just seeing the impact of the different drivers/governors on overall performance. Once I have the time and the WattsUp Pro isn't busy, I'll run some power consumption and performance-per-Watt measurements while comparing these CPU scaling governors on Linux 4.7. All of these benchmarks were done in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking software.