Linux 4.3 Scheduler Change "Potentially Affects Every SMP Workload In Existence"
With Linux 4.3 for those running any sort of SMP (Symmetric Multi-Processing) workloads, the performance could sway one way or another, but hopefully it's for the better.
Here's the key part of Molnar's pull request for the 4.3 scheduler changes:
The biggest change in this cycle is the rewrite of the main SMP load balancing metric: the CPU load/utilization. The main goal was to make the metric more precise and more representative - see the changelog of this commit for the gory details:
9d89c257dfb9 ("sched/fair: Rewrite runnable load and utilization average tracking")
It is done in a way that significantly reduces complexity of the code:
5 files changed, 249 insertions(+), 494 deletions(-)
and the performance testing results are encouraging. Nevertheless we need to keep an eye on potential regressions, since this potentially affects every SMP workload in existence.
This work comes from Yuyang Du.
The commit goes on to explain:
To sum up, this rewrite in principle is equivalent to the current one, but fixes the issues described above. Turns out, it significantly reduces the code complexity and hence increases clarity and efficiency. In addition, the new averages are more smooth/continuous (no spurious spikes and valleys) and updated more consistently and quickly to reflect the load dynamics.
As a result, we have less load tracking overhead, better performance, and especially better power efficiency due to more balanced load.
I can't wait to toss some SMP workloads onto some test boxes once upgraded to the Linux 4.3 Git code. There's also the number of systems part of the LinuxBenchmarking.com daily Git kernel performance tracker that will hopefully spot some changes.