Linux 7.3 Scheduler: a boost for games, hybrid CPUs and lower latency

Translated by a model; the original is in Russian.

· Linux and open source
The Linux 7.3 merge window took in a notable batch of scheduler updates — from speeding up games on old “potato” hardware to more precise load distribution on Intel's hybrid processors.

cover.svg

The merge window for the Linux 7.3 kernel took in a rich set of changes to the task scheduler. The developers promise a performance win for games, more careful handling of hybrid processors, and lower latency.

“Flatten the pick” for the sake of games

The bulk of it is a series of patches from Intel engineer Peter Zijlstra, aimed at cgroup-based scheduling. According to the authors, this subsystem has historically been a source of pain and odd behavior — for instance, mishandling tasks whose priority has been changed (renice). The new approach, dubbed “flatten the pick,” adds several methods for distributing weights via the cgroup_mode parameter: up, max, concur, and tasks. The default is concur — the most precise, but also the most costly option. Cgroup scheduling is at the same time moved onto a single run queue.

In practice, the series noticeably helps games on old “potato” hardware: testing was done on a combination of an Intel Sandy Bridge processor and an AMD Radeon RX 580 (Polaris) graphics card, and the publication calls the results very promising.

Less latency and attention to hybrids

A separate block of changes reduces scheduling latency for tasks with a short time slot. Vincent Guittot demonstrated significant progress in the cyclictest benchmark, which measures exactly the kind of real-time system response involved.

In addition, 7.3 received an important fix for cluster scheduling on processors with asymmetric core performance — that is, on Intel's hybrid chips. Phoronix wrote about this work earlier in the context of improved load balancing between clusters.

Finally, for the sake of more efficient load distribution, the scheduler now prefers fully idle cores when balancing in NOHZ mode. The pull request also included a number of other, smaller code fixes.


Source: Phoronix

Comments

Sign in, to comment.

  • No comments yet.