Linux Weather Forecast
Welcome to the Linux Weather Forecast
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.
Current conditions: The 4.1 kernel release happened on June 21. Some of the major features merged for this release include:
- File and directory encryption for the ext4 filesystem. This feature was developed for use with the Android system but should be applicable elsewhere as well.
- Extended BPF functionality in the kernel's "traffic control" subsystem, allowing for a great deal of flexibility in classification and modification of network packets as they move through the system.
- The persistent memory block driver, providing basic access to non-volatile RAM devices.
- Developers putting Linux onto tiny systems can now configure out multi-user support to save a bit of space.
- Basic packet routing using the multiprotocol label switching (MPLS) mechanism is now supported.
- The XFS filesystem has gained whiteout support, allowing it to support union filesystems like overlayfs.
- ACPI support has been added to the ARM64 architecture. This mechanism is the intended way to configure ARM-based server systems; it has been somewhat controversial in the past but there seems to be no serious opposition to the idea now.
This development cycle featured the work of 1,539 developers; it was the first ever to get contributions from over 1,500 people. See this article for details on where the code for 4.1 came from.
Short-term forecast: The most likely date for the 4.2 kernel release is August 23. Some of the features that can be expected in this release include:
- The Linux security module stacking patches have been merged after years of work. With stacking, multiple security modules can be combined on a running system, adding flexibility to the creation of security policies.
- The kernel now has support for GENEVE virtualization-encapsulation tunnels.
- The new delay-gradient congestion-control algorithm has been merged; this is an interesting new approach to getting the most out of available bandwidth without causing problems for the net as a whole.
- The merging of the control group writeback patches should greatly improve memory-management performance, especially on systems where memory control groups are in use.
- Work continues on adding top-quality support for large persistent memory arrays to the kernel. With 4.2, we have a new set of infrastructure that should provide high-speed access to this memory while taking measures to prevent accidental corruption — an issue of concern when dealing with memory that is directly addressable by the CPU.
All told, the 4.2 development cycle looks to be the busiest in some time, and it may yet turn out to be the busiest kernel development cycle yet.
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; that code has now found its way into the staging tree for the 3.14 release.
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 includes 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.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.