Now that the Linux kernel 3.9 merge window is closed, it's safe to say we know what features will be included in the next kernel release. What lies beyond is predictable, still, but will likely hold a surprise or two. That's where the annual Linux kernel weather report comes in.
Delivered by Linux kernel contributor and LWN.net co-founder Jon Corbet at Collaboration Summit in San Francisco April 15-17, the forecast will help prepare the Linux community for the year ahead.
In this Q&A, Corbet gives us a preview of his talk, reveals some kernel changes that surprised him last year, and discusses some of the biggest challenges kernel developers face in the months and years ahead.
What changes to the kernel over the past year have surprised you?
I do try not to be surprised by kernel changes - it's my job to be on top of that stuff, after all :)
One of my biggest surprises, I guess, was when I realized that the Android developers had dropped their wakelock/suspend blocker implementation in favor of the solution that had been merged into the mainline kernel. A long-running, high-profile, bitter fight had been resolved quietly with almost nobody even noticing, and one of the biggest differences between the Android and mainline kernels is no more. A lot of credit is due to the developers in both the Android and mainline communities for their hard work in creating a solution that is acceptable to everybody involved.
Another surprise is the speed with which the bufferbloat problem has been brought under control. With a relatively small number of changes, many of the over-buffering problems in the Linux kernel were taken care of, to the point that the problem is pretty well solved for wired Ethernet networking. There is, of course, still a lot of work yet to be done, especially with wireless networking.
What features will we find in the 3.9 kernel?
We'll get support for the ARC and Metag processor architectures. The "dm-crypt" subsystem enables the use of a fast (solid-state) drive as a front-end cache for slower storage. The ARM architecture now supports virtualization with KVM. User namespaces now work with almost all filesystems, making it possible to enable this feature in almost any kernel (though that may not yet be a wise thing to do).
What other new features are coming down the pike this year?
Some of the more interesting work on the horizon may be the various solutions to the problem of scheduling on ARM big.LITTLE systems. The Linux scheduler was never written with asymmetric processors in mind, so it currently does not know how to schedule tasks to take advantage of the big.LITTLE architecture. The two existing patch sets try to solve this problem in very different ways; the "big LITTLE MP" work, in particular, will be the beginning of a new push to make the scheduler more power aware.
We will see the continuation of the ARM architecture cleanup work and, probably, true multiplatform ARM kernels for the first time. The integration of the Android code into the mainline will also continue.
What are some of the biggest issues kernel developers are tackling and how are they being addressed?
Power consumption is a significant problem at all levels. For data centers, we are seeing the addition of techniques like PowerClamp, merged for 3.9. The challenge on mobile systems is far more widespread, and we have to think much more broadly about power management at all levels of the system to get the results we need.
Security remains a huge problem. The good news is that we have developers focusing on the security of the kernel in a way we didn't see in the recent past; that should result in more secure systems for everybody.
Proper support for containers (lightweight virtualization running on the host kernel) remains a challenge; developers have been working hard on it for several years. That work is beginning to approach a conclusion; by the end of the year, we may actually have most of the fundamental technologies in place.
Scheduling on NUMA systems, where it is highly important to keep processes and their memory together on the same node, is a longstanding problem area for Linux. In the 3.8 development cycle we got some necessary infrastructure to let developers start experimenting with solutions, but actually getting a handle on this problem will take a while yet.
Can you give us a preview of your Collaboration Summit weather report?
I'll spend some time reviewing the last year of development, as usual, and discuss development topics of interest in the coming year or so. Many of the issues described above will be covered, but there will also certainly be a surprise or two.
More details on Jon's keynote, as well as the other keynote presentations and sessions can be found on The Linux Foundation Collaboration Summit website. If you're not already attending, you can still request an invitation.