views:

68

answers:

1

I might be a little late on this but I was going through how various production schedulers work recently and I came across the O(1) scheduler which was replaced by the Completely Fair Scheduler, or CFS, both by Ingo Molnár.

As the name suggests the O(1) scheduler takes constant time but CFS is O(log N). Then why was such a move made? Obviously, there must have been a good reason. If it has to do with making applications more responsive, then how does CFS help? (And why do others still use a multilevel feedback queue approach?)

+1  A: 

A large part of it was because of internal 'competition' and confrontation with a chap called Con Kolivas. Sometimes you have to look at the people involved as much as the tech.

Will
So it basically is an effort to improve the responsiveness of the system?
Ashish
It is an infuriated Ingo bowing to the baying fair scheduling fans whilst denying Con having his scheduler adopted by instead quickly writing one. The wikipedia links describe Ingo as crediting Con, but that if you go to kerneltrap or through the list you'll find more meat on that bone. It was all very personal, bitter and left a bad taste in the mouth.
Will
It wasn't quite that simple. Linus chose to merge Ingo's as he trusted him as a maintainer of the CFS over Con and his scheduler. Sure personalities were involved but that's par for the course on lkml. If you want the nitty gritty details I can recommend reading the relevant LWN articles around the time they were up for merging. Try following the LWN timeline from <a href="http://lwn.net/Articles/257967/">April 2007</a> onwards.
stsquad