What's new in Linux 3.10
by Thorsten Leemhuis
A second SSD caching framework and support for the new Radeons' video decoder are two of the most important enhancements in Linux 3.10, which is now out. This version also includes several new and improved drivers and a change to the network stack to speed up HTTP connections.
Linus Torvalds released version 3.10 just nine weeks after Linux 3.9 was released, making this development cycle about one week shorter than many previous cycles. This speed is particularly impressive considering more changes were integrated into the latest kernel version than ever before, at least if you go by the number of commits in the source code management system – the number of lines changed is about the same as for previous versions.
This article provides an overview of the most important changes in Linux version 3.10 and a look ahead to what is coming in Linux 3.11. More information on 3.10 can be found in the "Coming in 3.10" mini-series:
In these articles, you will find the more detailed source articles that cover all the important changes in each particular area. There is also the "Minor gems" section in each which lists the many other changes not mentioned in the main article but which, for many users, are still of great significance.
The Radeon driver in the Linux kernel now offers interfaces for interacting with the Unified Video Decoder (UVD) on Radeon HD 4000 and later HD graphics cards. An open source UVD driver which uses this interface will be included in the next major revision to Mesa 3D (version 9.2 or 10.0). The kernel now supports the graphics chip on the recently released Richland processor family, otherwise known as A4, A6, A8 and A10 series APUs. Linux can also now address Radeon Hainan GPUs (1, 2, 3, 4).
By skipping the temporary switch to a text console, systems with the graphics driver for Intel GPUs are now able wake from standby faster (1, 2). The driver now allows the graphics core on newer Intel GPUs to be overclocked. Thanks to some changes contributed in part by NVIDIA itself, the next kernel version will include interfaces allowing userspace graphics drivers to use the acceleration features on NVIDIA's Tegra20 and Tega30 systems on a chip (SoC) (1, 2, 3, 4, 5, 6, 7, 8, 9 and others). A 3D driver under development by an open source developer will build on this interface.
Linux 3.10 will include the "block-layer cache" bcache, which can be used to configure one disk as a cache for another disk; a fast SSD, for example, could be used as a cache for a slower hard drive with more capacity. This kind of SSD cache can speed up access to frequently read data and take on write requests until a quieter moment when they can be written to the slower disk.
Bcache after dm-cache, which was integrated into Linux 3.9, it is the second cache framework of this kind to be added to the Linux kernel. A few developers have tried to benchmark the various caching solutions recently (1, 2 and others). The benchmarks, however, did not produce clear results, and there was some criticism of the methodologies. The developers' findings and notes indicate that each solution works well in some situations and unexpectedly badly in others – clearly, they all could still stand to improve a bit.
The still experimental file system btrfs can store extent metadata in a more compact way and therefore slightly increase its speed. Older kernels, however, don't understand the new file system structures, so users have to enable them with '
btrfstune -x' (1, 2). The experimental features in XFS must also be activated manually in order for the file system to add checksums to a variety of metadata and thereby detect any inconsistencies. More details can be found in the kernel documentation for the new feature.