Linux Kernel Gets New Infinity Scheduler From scx_flow Creator

Galih Tama's Infinity Scheduler modifies Linux EEVDF and CFS with EMA tracking for dynamic slices and faster interactive wakeups. The native patches avoid BPF overhead while promising better responsiveness and RT stability. Early patches target kernels 6.18 through 7.1.
Linux Kernel Gets New Infinity Scheduler From scx_flow Creator
Written by Dave Ritchie

Developers chasing smoother desktop performance and better responsiveness on Linux systems now have a fresh option. The Infinity Scheduler patches the core CPU scheduler directly. It modifies the existing EEVDF implementation inside the Completely Fair Scheduler and real-time classes without any BPF or sched_ext overhead.

Galih Tama built it. He previously created the scx_flow sched_ext scheduler. In a message shared with Phoronix, Tama described the work as “A native EEVDF modification built directly into CFS and RT — no BPF, no sched-ext dependency.” The approach sidesteps limitations he saw in BPF-based designs. Those can produce false positives under heavy load.

The scheduler relies on an exponential moving average, or EMA, to track how much each task has run recently. This signal drives every major decision. Tasks that keep running see their EMA rise. Higher values trigger shorter time slices. CPU-bound work bottoms out at a 400-microsecond floor. Interactive tasks that sleep often keep their EMA low. They hold onto larger shares of CPU time.

But the design goes further. On wakeup, low-EMA tasks receive a 50 percent shorter virtual slice. Their deadlines move earlier inside the EEVDF tree. The kernel picks them sooner at the next scheduling point. And for tasks blocked on futex_wait, the scheduler bypasses slice protection in pick_eevdf. Preemption happens immediately when a higher-priority interactive task wakes. No waiting for the current slice to expire.

Real-time tasks get similar treatment. The scheduler modulates their queue placement and consumption using the same EMA signal. This delivers stall immunity without separate heuristics. The entire mechanism stays self-stabilizing. No complex feedback loops. No extra tunable constants beyond two safe sysctls.

Tama detailed the math in the project’s GitHub repository. While a task runs, EMA updates with the formula: ema += (Bmax – ema) * δ * α / (Bmax * 256). Bmax sits at 2 milliseconds. Alpha equals 16. During sleep the value decays proportionally to time asleep. Micro-sleeps below 62.5 microseconds still register. The slice calculation then becomes share multiplied by (100 minus pct times three-quarters) over 100. As EMA percentage climbs, the slice shrinks. After roughly 256 ticks of continuous run time the slice approaches its 400-microsecond minimum. Yet EMA converges asymptotically toward the budget limit without ever quite reaching it. The “limitless” property holds by design.

Version three of the patches adds several refinements. EMA-modulated wakeup vslice scaling. The futex bypass. Continuous decay for micro-sleep workloads. RT queue placement modulation through infinity_rt_effective_prio. These changes build on earlier versions that already replaced update_deadline with a fair-share slice function and update_curr with EMA consumption.

The project supplies ready patches for Linux 6.18 LTS, 7.0, and 7.1. Installation takes one command after cloning the v3 branch. A helper script detects the running kernel, applies the correct patch set, rebuilds, and installs. On reboot users select the new Infinity kernel from the boot menu. Verification comes easily. The uname string ends in -infinity. A sysctl flag confirms the scheduler runs. Dmesg logs the activation message.

Tama credits several prior efforts. The core fair-share idea draws from his own scx_flow 3.1.0. Burst suppression concepts echo BORE by Masahito S. Research from Alfred Chen’s BMQ, PDS, and LF-BMQ schedulers reinforced the decision to modify EEVDF rather than replace the whole framework. Peter Zijlstra’s EEVDF implementation from 2023 provides the foundation. That algorithm itself traces back to the 1995 paper by Ion Stoica and Hussein Abdel-Wahab.

Why pursue this route now? Sched_ext has gained traction. Linux 7.2 merged expanded sub-scheduler support. Yet some developers prefer changes that ship inside the mainline kernel without user-space BPF programs. Infinity Scheduler offers that path. It keeps the scheduler lightweight. No extra context switches. No reliance on eBPF verifier complexity that can sometimes misclassify workloads.

Server operators might appreciate the throughput angle. Desktop users and gamers stand to gain more from the interactive bias. The 400-microsecond floor prevents starvation while still letting background compiles or video encoding run. SMT systems receive automatic slice halving on secondary threads through the infinity_smt_divisor tunable, defaulting to two.

Early feedback on the Phoronix article and GitHub page remains limited. The repository shows only a handful of stars since the June 2026 release. No independent benchmarks exist yet. Phoronix has offered to test the scheduler if reader interest grows. That testing could compare latency under mixed loads against stock EEVDF, scx_flow, and other out-of-tree options such as CachyOS-tuned kernels.

Kernel maintainers will examine the patches for mainline inclusion. The changes touch sensitive paths inside kernel/sched. Any merge would require careful review from Peter Zijlstra and the scheduling community. Tama prepared the code with that in mind. All tunables clamp to safe ranges. The EMA math avoids overflow. A NULL guard in pick_next_entity prevents dereference crashes.

So the work sits at an interesting junction. It borrows proven ideas from the sched_ext world. It folds them back into the classic CFS foundation. The result feels like a hybrid. Fair share behavior. Responsive wakeups. Predictable RT handling. All delivered through one clean signal.

Whether Infinity Scheduler gains adoption depends on real-world results. If it delivers lower tail latencies in games, snappier desktop feel during compiles, and stable server performance, expect distribution packagers to take notice. Tools already exist to adapt the patches to newer kernels. The install script lowers the barrier for enthusiasts who want to try it today.

One detail stands out. The scheduler never needs auto-tuning beyond the two exposed sysctls. Write to kernel.infinity_carriage_ns to adjust the base 2-millisecond window. Or trigger a full reset. The EMA decay handles the rest. That simplicity could prove its strongest selling point in a field crowded with complex heuristics and machine-learning schedulers.

Developers interested in the code can examine the reference implementation at src/infinity_sched.c. The functions map directly to the modified CFS and RT entry points. Comments walk through each formula. The README compares features against scx_flow. Infinity adds SMT awareness, wakeup scaling, and RT immunity while dropping work stealing.

Expect more discussion in coming weeks. Linux 7.3 development continues. Patches for cache-aware scheduling landed recently with impressive MySQL gains. The scheduling conversation stays active. Infinity Scheduler enters that discussion with a focused, native approach. Its success will hinge on whether the EMA-driven decisions outperform the status quo across the wide range of workloads Linux supports.

Subscribe for Updates

DevNews Newsletter

The DevNews Email Newsletter is essential for software developers, web developers, programmers, and tech decision-makers. Perfect for professionals driving innovation and building the future of tech.

By signing up for our newsletter you agree to receive content related to ientry.com / webpronews.com and our affiliate partners. For additional information refer to our terms of service.

Notice an error?

Help us improve our content by reporting any issues you find.

Get the WebProNews newsletter delivered to your inbox

Get the free daily newsletter read by decision makers

Subscribe
Advertise with Us

Ready to get started?

Get our media kit

Advertise with Us