Battle of the Schedulers

The Linux kernel scheduler has been getting a lot of development attention lately. Two major patch-sets have emerged as serious contenders for the new Linux Kernel process scheduler. Con Kolivas, maintainer of the -ck Linux kernel patch-set, has produced the Staircase Deadline scheduler (SD) and Ingo Molnar produced the Completely Fair Scheduler (CFS).

Con Kolivas - APCMag.com

Essentially, the Kernel process scheduler does what the name implies: schedules the processes, or programs and threads of execution, that your computer is running. Since everything your computer does must be scheduled, the scheduler players a huge part in how responsive your computer is. Therefore, a lot of attention goes into the scheduling algorithms. the SD scheduler and CFS are both very intelligent designs and reportedly have similar performance results.

Ingo Molnar

The similarities in the efficiencies of the schedulers have caused some heated debates about which one should be merged into Linus Torvalds’ Kernel (aka the Linux Kernel, aka the mainline Kernel). Finally, just recently, Linus decided to merge Ingo Molnar’s CFS into the mainline Kernel. Linus was very upfront about his decision to not accept Con’s scheduler because he believed Con was not as able to handle maintaining the patch-set and community as Ingo was. Basically he said Con wasn’t cooperative enough with developers and other members of the community.

Linus Torvalds

Linus’ decision caused a lot of animosity which ultimately resulted in Con Kolivas giving up Kernel development all together. It’s sad that such a great developer is giving up, but it just goes to show how serious teamwork and community is taken in the open source development model.

    None Found
  • http://agoln.net Logan Buesching

    I remember reading about how Linus chose the CFS scheduler over alternatives, and that game enthusiasts were complaining because of 3D rendering.

    IIRC, he also stated that the scheduler was a really small part of the kernel and that they shouldn’t get too upset about his decision because it’s not a big deal.

    Sad to see a good developer quit the kernel, maybe he’ll come back?

  • http://agoln.net Logan Buesching

    I remember reading about how Linus chose the CFS scheduler over alternatives, and that game enthusiasts were complaining because of 3D rendering.

    IIRC, he also stated that the scheduler was a really small part of the kernel and that they shouldn’t get too upset about his decision because it’s not a big deal.

    Sad to see a good developer quit the kernel, maybe he’ll come back?

  • http://lukehoersten.com/ Luke Hoersten

    The scheduler is a huge part of the kernel. It’s essentially the brain. He’s saying that development wise, it’s a small chunk of the code compared to the rest. Also, he was just trying to downplay and defuse the situation.

    The scheduler plays probably one of the biggest rolls in “interactiveness” (what normal people would call responsiveness) and though Linux already had a fast and constant time scheduler, this will be one of the biggest changes of the 2.6 Kernel. Ingo does all the realtime Kernel code which Linux dominates the market in. The differences in the CFS vs. the SD scheduler were minuscule compared to the importance of community interaction.

    So some of Linux’ biggest players went up to bad for the scheduler and this change will have a huge impact for desktop users. So again, it’s not that important in the code base as a whole, but it’s something many people will be directly affected by. It’s all how you measure “importance.”

  • http://lukehoersten.com/ Luke Hoersten

    The scheduler is a huge part of the kernel. It’s essentially the brain. He’s saying that development wise, it’s a small chunk of the code compared to the rest. Also, he was just trying to downplay and defuse the situation.

    The scheduler plays probably one of the biggest rolls in “interactiveness” (what normal people would call responsiveness) and though Linux already had a fast and constant time scheduler, this will be one of the biggest changes of the 2.6 Kernel. Ingo does all the realtime Kernel code which Linux dominates the market in. The differences in the CFS vs. the SD scheduler were minuscule compared to the importance of community interaction.

    So some of Linux’ biggest players went up to bad for the scheduler and this change will have a huge impact for desktop users. So again, it’s not that important in the code base as a whole, but it’s something many people will be directly affected by. It’s all how you measure “importance.”

  • http://agoln.net Logan Buesching

    Another thing that I saw is some benchmarks when running Quake / 3D rendering. When running it and having no other cpu loops, they got about 41 FPS, but once you added a single cpu loop, the ck1 scheduler went down to 3 fps! The cfs scheduler was able to handle 2 loops at 32 fps, and 3 loops at 24 fps. Amazing stuff!
    http://kerneltrap.org/node/14023

  • Pingback: Linux Scheduler Source at OpenRadix.org

  • Pingback: A CFS Lifestyle at OpenRadix.org