Linux 2.6.23-rc2 Kernel Performance
Phoronix: Linux 2.6.23-rc2 Kernel Performance
While the Linux 2.6.23 kernel is only weeks into development, it's already generated quite a bit of attention. From the merging of the Completely Fair Scheduler (CFS) to the -rc2 kernel being "the new -rc1", the Linux 2.6.23 kernel is certainly in store for being an ornate release. Adding to this attention has been a stable user-space driver API and virtualization improvements (KVM, Xen, and LGuest). With all of this activity surrounding the Linux 2.6.23 kernel we've decided to conduct a handful of benchmarks comparing the Linux 2.6.20, 2.6.21, 2.6.22, and 2.6.23 kernel releases so far.
I must say that the CFS sched really makes a world of difference. I have been using cfs sched patches with 2.6.22 for quite some time, and recently to debug and resolve some acpi woes,I had reverted temporarily to vanilla. And surprise surprise . I was amazed that how I even managed to use kernels prior to 2.6.22. I must say that the old scheduler (O(1)?) stutters noticeably when it comes to multiple tasks. The new scheduler balances really well when under heavy load - I did run a compiling process and run an audio application and play quake3 simultaneously with absolutely no audio or in-game stutters whatsoever. With old sched, I used to get audio stutters even when opening a new tab while browsing with firefox .
I suggest running some benchmarks parallely. Try running a heavy process, say a long lame encoding or bzip2 compression and try benchmarking something like doom3 or quake4 simultaneously. I have a feel one might see something interesting.
Apart from the scheduler changes, I don't think there have been significant performance improvements over the past few kernel releases. Also I must say that the no_hz (dyn_ticks) and hrtimers have improvised the performance too. Aside, thanks to the powertop application, which gives some nice suggestions to reduce the frequency of unnecessary cpu wake ups and I did notice the associated change in the performance too . Nope, its not just placebo effect .
And of course, we have seen a_lot many features added to the kernel since 2.6.20. Another thing I can't miss out on commenting - stability. Stability has been really improving, at least on the hardware I use. Especially 2.6.19 and 2.6.20 were almost unusable for me. But 2.6.22 with cfs sched patches has been running like a dream for me. I know different people may have different experiences, but at least I am one happy soul right now .
Well, the benchmarks done by phoronix were good for showing what the CFS schedular does in regards to a non-loaded system, but ideally, as above, what would have been better would have been output performance tests on a system running multiple cpu-hog processes.
Also, I registered just to post about this, and say that Phoronix is great. Happy to have it in my "browse all the time" bookmarks.
The benchmarking in this article missed the point of the new scheduler so much I wanted to cry but all I could do was laugh.
What would really be interesting and usefully is 2.6.22-ck1 vs 2.6.23-X with CFS. Everyone knows both CFS and SD are better than the old stock. Even tho CFS has been chosen over SD, there is still much to be gained by comparing them. Specifically in context of gaming workloads.
The point of these benchmarks were to simply compare the performance of the Linux 2.6.23-rc2 kernel against some of the recent kernel releases in some benchmarks commonly used by Phoronix.
The article isn't intended to be just a CFS comparison (hence it's called "Linux 2.6.23-rc2 Kernel Performance" not "CFS Scheduler Performance" or "Linux Scheduler Comparison"). CFS is just one of the additions to the Linux 2.6.23 kernel and we will have an article looking just at the scheduler in the future.
Maybe is just me, from the article, I don't really find it worth excited for...
I read the recent interview with Con Kolivas about why he left kernel development, but I didn't see any mention of CFS. I'm surprised by this since it seemed the whole reason for his departure related to the kernel scheduler. Maybe I just missed where the CFS name popped up in his interview.
I think Con Kolivas left for the wrong reasons, but it is a decision that he had to make for himself under the circumstances. I also make no claim to understand CFS and how it relates to the older schedulers. I wonder though how the inclusion of this new scheduler relates to Con Kolivas and his reasons for leaving... anyone have anything on this?
EDIT: Here is a link to the interview mentioned above:
Last edited by joshuapurcell; 08-06-2007 at 02:41 PM.
Indeed, I agree that it wasn't supposed to be a scheduler comparison and just about performance in single demanding applications. Aside, I believe its pretty difficult to compare schedulers as such. But then again, many people after reading the article may be tempted to conclude that there is not really much incentive to upgrade the kernel (and rightly so ), but I believe there is actually quite a marked difference (with the new schedulers of course ;-). I am sure in the real world one will find quite a few subtle but exciting improvements with the new kernels - many a things are not show stoppers, but definitely nagging sometimes (especially stuttering audio, or a drop in game fps ;-).
An off topic comment. This about dual core processors, smp and such. When I bought the computer (notebook with 1.6ghz centrino duo), I knew pretty much that I would be way better off with a single 3.2ghz or even a 2.8 or 2.6 ghz cpu, but I was excited at the breadth of things. Over the time, I have indeed been made to regret that (especially when I run some of my brute force computational programs). I somehow always managed to console myself with the thought that two is better than one. Few days back, for resolving my acpi issues, I had disabled my smp and to my surprise, I found that there is no performance change whatsoever, at least upto 2 or 3 moderately heavy tasks! There was absolutely no change in benchmarks (I atleast expected 1% ). Of course I could see the struggle when I started multiple heavy tasks and I could see it barely pulling inside games. But then again, when do I ever do such a harsh thing. Left me somewhat disappointed at my dual core decision ;-).
I really appreciate the efforts of Phoronix to present the new and emerging technology of interest to the Linux community.
The only thing that would make me happier would be the use of meaningful multitasking / multithreading benchmarks in comparing things like kernel releases.
I believe that the kernel has evolved to the point that performance in single-threaded and/or compute-bound applications vary little (as this round of tests seem to demonstrate).
Take a box running LAMP software and beat on it some. This is where differences in things like process and I/O schedulers will really show up. Thanks!