Linux 6.0 Has Some Big Scheduler Changes, Including Improved NUMA Balancing For AMD Zen
First up, there is improved NUMA balancing on AMD Zen systems for affine workloads. That comes down to this previously reported performance optimization in sched/fair for considering the CPU affinity when allowing NUMA imbalance in the "find_idlest_group" function. The patch is yielding very nice speed-ups in select cases as outlined in that earlier article:
Another notable scheduler change for Linux 6.0 is an Intel-led change to more efficient CPU idle searching under heavy system load as previously talked about on Phoronix.
A number of nice AMD-related improvements and new support preparations are coming with Linux 6.0.
The Linux 6.0 scheduler changes also include improving the handling of reduced-capacity CPUs in load balancing, Energy Model (EM) improvements, improving the NUMA imbalance behavior on certain systems with spare capacity, improve core scheduling, improve wake-up balancing by allowing same-LLC wakeup of idle CPUs for newly woken tasks, and various other small optimizations and fixes. There are also some PREEMPT_RT-related fixes with those real-time kernel patches expected to be merged soon.
See this pull request for the lengthy list of scheduler updates for Linux 6.0... Once the Linux 6.0 merge window settles down I'll be around with some comparison benchmarks to look at the performance improvements (and hopefully no performance regressions...) with this new kernel on some big AMD EPYC and Intel Xeon servers.