KS2009: Performance regressions
Unfortunately, the session did not lend itself to straightforward reporting, but your editor will try.
Matthew does a certain amount of performance testing at Intel with the goal of keeping an eye on trends over time. For a while, they tested RHEL releases, but the problem there is that these releases are far too widely spread out in time, making it hard to track down any problems which are found. So now they are testing mainline -rc kernels and are able to find some types of performance regressions quickly.
Much of the discussion was about specific problems which have been found and fixed. It's often surprisingly small things. A kmalloc() call was changed to kzalloc() in one well-used path, and the kernel got 1% slower. The addition of per-partition disk statistics cost 3%. Sometimes bigger changes also hurt: switching to the SLUB memory allocator had a 7% cost, though they were able to fight back to "only" 2%. And sometimes it's hard to know what will happen; the out-of-tree SLQB allocator performed very well on older systems, but then "collapsed" on current chip sets.
Conclusions from the session were generally vague. Good performance benchmarks are hard to come by, and some of them are proprietary with restrictions on discussing the results. It would be nice to have a better set of community benchmarks, but that means somebody has to actually implement them. Also needed is hardware to run the benchmarks on; much of this testing is done on very new and expensive equipment. Kernel developers were asked to look at performance as a feature, but, as long as their only feedback is from an occasional benchmark run done elsewhere, it will be hard to stay on top of the state of that feature.
