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 3.16 kernel was released on August 3. While this was a busy development cycle with regard to the number of patches merged, that work resulted in relatively few high-profile features, some of which were:
- The multiqueue block layer code continues to improve; with 3.16, it has been deemed to be "feature-complete and performant." This code will greatly improve the performance of block I/O, especially on larger systems; see this article for more information.
- The remap_file_pages() system call has been marked as deprecated, with an eye toward its eventual removal. If there are application developers out there who are making use of remap_file_pages(), they should make their needs known in the near future.
- The unified control group hierarchy code has been merged. This work changes the way control groups work, making them easier to manage and more maintainable over the long term.
3.16 included a notable change from previous development cycles: the merge window for this release was opened one week prior to the final 3.15 release. This change was made to suit Linus Torvalds's travel schedule and may not be repeated in the future (it was not done for 3.17), but it could point toward one possible way of shortening the development cycle going forward.
Short-term forecast: the 3.17 kernel can be expected sometime in the first half of October. Some of the more interesting features merged for this release include:
- There will be four new system calls in 3.17, rather more than the usual number. They are:
- getrandom(), a way for programs to obtain random data without the need to open any special files.
- seccomp(), a new way of accessing the "secure computing" capability with better control over system call filters in threaded applications.
- memfd_create(), which can be used to create a new in-memory data structure called a "memfd". A memfd can be used to securely pass data between processes that do not necessarily trust each other.
- kexec_file_load(), a new version of the "kexec" capability that allows one kernel to boot directly into another without going through the system BIOS. The main purpose of this work is to allow the kernel to verify signatures on the new kernel, allowing it to be used on systems running in the UEFI secure boot environment.
- A fair amount of work has been done toward an eventual solution to the "year 2038" problem. 32-bit systems will run out of space to represent times in January of that year, leading to all kinds of problems. Since systems being deployed now may still be operational then, it is important to get a solution into place soon. That solution does not yet exist in any complete form, but the kernel's core timekeeping code is now ready.
- The SCSI subsystem now has multiqueue block support, an upgrade which should greatly increase its scalability in future releases.
With the merge window closed, this development cycle should not see any other major new features added. The focus will be on stabilization until the final 3.17 release.
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.