Jon Corbet’s Linux Weather Forecast

59

This page is an attempt to track ongoing developments in the Linux development community that have a good chance of appearing in a mainline kernel and/or major distributions sometime in the near future. Your “chief meteorologist” is Jonathan Corbet, Executive Editor at LWN.net. If you have suggestions on improving the forecast (and particularly if you have a project or patchset that you think should be tracked), please add your comments to the Discussion page. There’s a blog that reports on the main changes to the forecast. You can view it directly or use a feed reader to subscribe to the blog feed. You can also subscribe directly to the changes feed for this page to see feed all forecast edits.

Forecast Summaries

Current conditions: the 3.12 kernel was released on November 3.  Some of the headline features in this release include:

  • Basic data deduplication support in the Btrfs filesystem.  This feature allows Btrfs to store a single copy of blocks of data that are duplicated in multiple files, thus saving space.
  • Some changes to the out-of-memory killer should make the system more reliable in severely memory-constrained situations, but that may happen at the cost of changing the apparent behavior of the system as seen by some applications.  See this article for more information.
  • “Render nodes” allow a graphical processor (GPU) to make its rendering capabilities available to an application independently of the display.  This separation of rendering from mode setting should make it easier to use GPU features in applications; see this post from David Herrmann for details.
  • “TSO sizing” is a change to the TCP stack that will enable smoother, less bursty traffic when TCP segmentation offload (a hardware feature that accelerates packet construction) is in use.  When combined with the new “fair queuing” packet scheduler, the result should be a system that much more fairly and efficiently handles large numbers of concurrent network streams.  See this article for more information. 
  • RAID5 support in the MD subsystem is now multithreaded, improving performance with faster drives.
  • The “full system idle detection” feature works with the dynamic tick feature to enable power-efficient operation.  In short, it can detect when nothing is happening systemwide and turn off the last clock tick, allowing all processors to go into a deep sleep state.

The 3.12 development cycle saw the inclusion of just under 11,000 changes from almost 1,300 developers.  See this article for some details on where the changes in 3.12 came from.

Short-term Forecast: The 3.13 kernel can be expected after the New Year.  As of this writing, the merge window for this release is not yet open; it has been delayed one week due to travel constraints.  3.13 looks to be a feature-heavy release; it may include the nftables packet filtering engine, some serious NUMA scheduling work, and, possibly, deadline scheduling.  None of this is certain until it is merged, though; this page will be updated once the merge window gets going.

Longer-term forecasts

As with the weather, there are no certainties about what may be merged into the Linux kernel going forward; every change is evaluated on both its merits and its long-term maintenance costs.  Here are a few things on the horizon that are worth watching, though.

The Android kernel patches.  There has been much gnashing of teeth about the out-of-tree Android patches over the years.  At this point, though, the bulk of that code has been merged upstream.  In some cases, including the infamous wakelocks, an alternative solution was developed upstream and Android has migrated over to it.  The biggest remaining piece is the ION memory allocator; thought is going into how that could be merged, but it may take a little while to work out the details.  

The Btrfs filesystem is taking longer than anybody might have liked to reach production readiness, but things are getting closer.  Important features, like RAID5/6 support have been merged, and bugs are being squashed.  We may well see at least one major distribution adopt Btrfs by default in 2014.

Control groups are the mechanism by which the kernel gathers processes into hierarchical groups; it can then apply policies and resource usage limits to those groups.  This feature remains under intensive development, and a lot of changes can be expected over the course of the next year.  See this article for a description of some of the ongoing issues in this area.

NUMA scheduling.  Non-uniform memory access (NUMA) machines will only perform well if running processes and their memory are kept on the same nodes; otherwise the cross-node memory accesses will slow things down considerably.  NUMA scheduling performance on Linux is not as good as users think it should be.  The good news is that quite a bit of development effort has gone into solving this problem over the course of the last year.  The 3.9 kernel included some new infrastructure, and 3.13 may well include a much improved scheduler for NUMA systems.

Power-aware scheduling.  On systems with multiple cores (and even cellphones are multi-core these days), quite a bit of power savings can be had by shutting down CPUs when they are not needed.  Overly aggressive powering down can make things worse, though, so care is needed.  There are several patch sets out there, but there are still significant disagreements over how this problem should be solved.  That said, expect significant progress in this area in the 2014 time frame.