Linux 6.6's new scheduler

A Fair Slice

© Photo by Diana Krotova on Unsplash

© Photo by Diana Krotova on Unsplash

Article from Issue 301/2025
Author(s):

Linux 6.6 introduces the EEVDF scheduler, a next-generation CPU scheduling algorithm focused on fairness and responsiveness.

Linux Kernel 6.6 introduced a major update to process scheduling by replacing the almost decade-old Completely Fair Scheduler (CFS) with the Earliest Eligible Virtual Deadline First (EEVDF) scheduler [1]. This new scheduler fulfills the same role as CFS dividing CPU time among processes but does so more efficiently, with lower latency and more predictable behavior. EEVDF is based on an algorithm from a mid-'90s research paper and was merged under the guidance of veteran kernel developer Peter Zijlstra. For those managing Linux systems (from on-premises servers to cloud environments), EEVDF brings potential performance boosts and smoother multitasking without requiring fundamental changes to userspace software. I'll explore how EEVDF works, how to configure and optimize it, and why it matters for modern Linux distributions and workloads.

Unlike its predecessor, EEVDF takes a more algorithmic approach to fairness and responsiveness, removing many of the ad-hoc heuristics and tuning knobs that CFS relied on. The design ensures that tasks which haven't gotten their fair share of CPU are automatically favored, while tasks that overused CPU are gently throttled back in subsequent scheduling decisions. This clean, proportional-share mechanism improves latency for tasks that CFS might inadvertently starve or delay, all without the need for complex tuning parameters. In practical terms, system administrators and developers should see more consistent task scheduling and fewer edge-case issues. The kernel developers caution that a few specific workloads could see initial performance regressions under EEVDF, but these are expected to be rare and are being addressed in follow-up patches.

Why the Scheduler Changed

The CFS had been the default scheduler since Linux 2.6.23 (2007), so replacing it was a big deal. The main motivation was to eliminate the fragile heuristics and guesswork CFS used to handle various workloads, especially latency-sensitive tasks. CFS implemented fairness by tracking each task's virtual runtime and trying to give equal CPU time to all tasks of equal priority. However, to accommodate interactive vs. batch behavior, CFS accumulated many tunable parameters and heuristics. These required careful balancing and could mispredict some scenarios, leading to suboptimal performance or responsiveness. Administrators might recall tweaking CFS parameters or using tools such as nice/renice to influence scheduling, which sometimes felt like a black art in multitenant or high-load systems.

[...]

Use Express-Checkout link below to read the full article (PDF).

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Linux 6.12 LTS

    For 20 years, the kernel developers maintained real-time support outside the mainline kernel. Now, in Linux 6.12, real-time support has become an official part of the operating system kernel.

  • Kernel 6.10 Available for General Usage

    Linus Torvalds has released the 6.10 kernel and it includes significant performance increases for Intel Core hybrid systems and more.

  • A Gaggle of Schedulers in Kernel Development Battle

    Really Fair - Really Simple, Really Fair - Really Unfair: three schedulers are the topic of current discussions on the kernel mailing list.

  • Optimizing the Kernel

    We explore some optimizations designed to deliver a smoother experience for desktop users.

  • Completely Fair Scheduler Analyzed

    Avinesh Kumar, an IBM developer has taken a close look at the Completely Fair Scheduler (CFS) introduced with kernel 2.6.23, comparing it with other schedulers. In the conclusion to the analysis, Kumar discusses changes in the future kernel 2.6.24 scheduler.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News