2.6.31 is out
After a development cycle lasting exactly three months (June 9 to September 9), Linus Torvalds has released the 2.6.31 kernel. This cycle saw the inclusion of almost 11,000 different changes from over 1100 individual developers representing some 200 companies; a minimum of 16% of the changes came form developers representing only themselves. In other words, over the last three months, Linux kernel developers were putting 118 changes into the kernel every day. That is a lot of work.
Needless to say, all these changes have brought a number of new features to Linux. For the full list, I can only recommend heading over to the always-excellent KernelNewbies 2.6.31 page. Some highlights include USB 3 support (making Linux the first operating system to support that technology), much-improved support for ATI Radeon graphics chipsets (though that is still a work in progress), a number of useful tools aimed at finding kernel bugs before they bite users, IEEE 802.15.4 “personal area network” support, a number of tracing improvements, and vast numbers of new drivers.
The change that may be most visible to a lot of users, though, is the merging of the new performance counter subsystem. Performance counters are, at their core, a hardware feature; modern CPUs can track events like cache misses and report them to the operating system. Developers who are trying to squeeze the most performance out of a chunk of code are highly interested in this information; it’s often the best way to know if micro-optimization changes are actually working. Linux has been very slow to get performance counter support in the mainline for a number of reasons, but it’s finally been added for 2.6.31.
Additionally, the performance counter code has been integrated with the tracing framework, meaning that hits on tracepoints can be treated like any other performance counter event. That makes the integration of a number of operating system events a relatively straightforward task - system administrators can do it on production systems without needing to make any kernel changes at all. See this article for a performance counter overview, and this article for a discussion of the integration between performance counters and tracepoints.
So what comes next? As I write this, Linus is taking his traditional one-day break, so the merging of changes for 2.6.32 has not yet begun. That should happen soon, with the merge window staying open through about the 24th - it will likely close about the same time that LinuxCon ends. So we’ll be in a good position to talk about 2.6.32 features at the kernel roundtable event at LinuxCon on the 21st.
My guesses? The 2.6.32 kernel should come out sometime around the beginning of December. It will include even better ATI Radeon support (with proper 3D acceleration, hopefully), the much-publicized “hv” drivers from Microsoft (though those may be removed before too long since the developers seem to have lost interest in maintaining them), some significant power management improvements, a number of changes aimed at improving virtualization performance, and a vast number of other things - stay tuned.