~200 line miracle Linux patch

There’s been lots of criticism from certain camps that Linus and the kernel developers don’t care enough about the desktop and that it has too much focus on big iron. There certainly have been (and continue to be) issues with Linux on the desktop, in terms of performance. Lately there has been a push to improve it, perhaps driven by the need to have Linux running well on small devices like Android and MeeGo.

Or perhaps it stems from much further back. We all remember anaesthetist Con Kolivas’s kernel patches (Kororaa used -ck, back in the day) and schedulers which improved desktop performance a whole lot, but in the end he was shunned, and then quit development. Linus wasn’t convinced, and Ingo Molnár (the CPU scheduler maintainer) then wrote a new scheduler which was more like Con’s (ironically named, Completely Fair Scheduler). Although he quit, two years later Con was still using Linux and couldn’t stand the desktop responsiveness any more, so he created a new scheduler, BFS (with no intention if getting it into the mainstream kernel).

Why is this important? Well now someone else is having a go. The small 200 line patch by Mike Galbrait has such a tremendous impact that even Linus can’t argue with the result.

If you want to see it in action, Phoronix has an article about the patch along with some videos showing the dramatic difference.

“Tests done by Mike show the maximum latency dropping by over ten times and the average latency of the desktop by about 60 times.”

With this patch, the desktop (running GNOME) can smoothly play the Ogg 1080p version of Big Buck Bunny and glxgears at the same time, while scrolling up and down a Firefox window and.. wait for it.. performing a kernel compile with make -j64.

xkcd Supported Features
xkcd, “Supported Features”

I don’t think that this will be merged until 2.6.38 as the 2.6.37 window has already closed.

-c

2 thoughts on “~200 line miracle Linux patch

Leave a Reply

Your email address will not be published. Required fields are marked *