Peter Zijlstra has spent years shaping the Linux kernel’s scheduler. Now the Intel engineer takes direct aim at one of its long-standing headaches.
Cgroup scheduling. “A pain in the arse,” he calls it. The problems start with weight distribution. They end with hierarchical picks. And it all sucks.
His new patch series, titled sched: Flatten the pick, seeks to strip away layers of complexity. The work surfaced this week. It already shows striking gains for gamers stuck on older machines. But its reach could stretch far beyond that.
Zijlstra tested on what he labeled a potato. An Intel Core i7-2600K from the Sandy Bridge era paired with an AMD Radeon RX 580. The setup ran “Shadows: Awakening” from GOG at 1080p through Lutris, GE-Proton 10-34 and the Steam Runtime.
He added eight copies of a nice spin.sh loop. One per logical CPU. The game turned almost unplayable. Frame times spiked. Minimum FPS dropped to 3.8. Average sat at 48. Average frame time hit 34.5 milliseconds. Maximum stretched to 107.4.
Then he shortened the scheduler slice to one-tenth the base value. The difference jumped out. Minimum FPS climbed to 20.6. Average reached 57.2. Frame time average fell to 19.5 milliseconds. The maximum dropped to 37.2. The game became entirely playable. Not great. But definitely playable. Phoronix reported the numbers.
The experiment used MangoHUD for capture. It ran for several minutes each pass. Results point to better responsiveness under load. And they arrived without touching the game itself.
But the real story sits inside the scheduler. Modern chips pack dozens of cores. The current code walks hierarchies repeatedly during task selection. Each cgroup adds cost. Weights must propagate. Picks must respect parent groups. The logic grew complicated over time.
Zijlstra wants to flatten it. Remove the repeated hierarchical traversal in the hot path. Simplify how the scheduler chooses the next task. The series contains multiple patches. They target the fair scheduler class and related cgroup machinery.
Earlier hints appeared in discussions around sched_ext. Developers noted that certain cgroup behaviors forced extra complexity in pick_next_task_fair. Flattening the pick could clear some of that away. One patch thread from last year referenced Rik van Riel’s earlier ideas on the topic.
So far the patches remain in RFC form. They carry the date from mid-May 2026 on the lore archive. Kernel maintainers will review the trade-offs. Performance wins on old hardware matter. But changes must not regress behavior on large servers or container-heavy deployments.
Gaming stands out as an early beneficiary. Proton and Steam Deck users often run background tasks. Desktop environments add their own cgroups. A more efficient pick logic could cut stutter. It could deliver steadier frame delivery even when the CPU feels saturated.
Yet the patches address a deeper issue. The scheduler’s cgroup support has accumulated technical debt. Weight distribution never felt clean. Hierarchical enforcement added overhead. With core counts climbing, those costs compound.
Developers have chased scheduler improvements for years. The EEVDF replacement for CFS brought better fairness. Other tweaks targeted latency. This effort focuses on simplicity in the selection path. Less code in the critical section often yields lower latency and higher throughput.
Results on the potato hardware look promising. But real validation will come from broader testing. Server workloads. Container orchestration. Mixed interactive and batch jobs. The shorter slice helped here. It may not suit every scenario.
Zijlstra’s direct language reflects years of experience with the code. He knows its warts. The community now gets a concrete proposal to debate. If the series lands, users could see gains without new hardware. Old systems might stretch further. New systems could schedule more efficiently.
The work arrives at a busy time for Linux graphics and gaming. Recent Phoronix benchmarks continue to show Linux pulling ahead of Windows in some creator and gaming tests on high-end AMD hardware. This scheduler tweak targets the opposite end. The machines many enthusiasts retired years ago but still fire up for older titles or as secondary boxes.
Frame time consistency often matters more than raw FPS. The potato test cut the worst-case frame time by nearly two-thirds. That reduction can separate a slide show from smooth play. For Proton users running Windows games on Linux, every millisecond counts.
Watch the mailing list. The discussion will likely grow technical fast. Questions about cgroup semantics. About fairness guarantees. About interaction with control groups used by systemd and container runtimes. Yet the motivation stays practical. Make the scheduler faster. Make it simpler. Deliver better results on real hardware.
And the potato? It just proved the point. Old iron still has life. With the right tweaks, it can surprise you.


WebProNews is an iEntry Publication