What's new in Linux 3.7
by Thorsten Leemhuis
Linux 3.7 has more robust Intel and NVIDIA graphics drivers, support for ARM64, can handle NAT for IPv6 and has better Btrfs performance. These are just some of the enhancements in the latest version of the Linux kernel.
Ten weeks after the arrival of Linux 3.6, Linus Torvalds has released kernel version 3.7. The new kernel includes a slightly larger number of changes and some which are more major than those of its immediate predecessors; the changes affect not only developers and system administrators, but also users who run Linux on their home PCs.
This article provides an overview of the most important changes in Linux version 3.7 and a look ahead to what is coming in Linux 3.8. More information on 3.7 can be found in the "Coming in 3.7" mini-series:
- Part 1 – Filesystems and storage
- Part 2 – Networking
- Part 3 – Infrastructure
- Part 4 – Drivers
- Part 5 – CPU and platform code
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.
Kernel developers have merged support for network address translation (NAT) with IPv6 into Linux (1, 2 and others). A number of Linux developers have previously questioned the utility of doing so, since NAT is generally unnecessary with IPv6: with its much larger address space and other features, IPv6 renders many of the reasons why NAT was much used with IPv4 redundant. Despite that, the developers have now merged this feature, because the specification for NAT with IPv6 avoids some of the problems which dogged the IPv4 solution, and it turns out that there are some use cases in which NAT for IPv6 can indeed prove useful. Some users and institutions, for example, would like to use NAT to keep their internal network topology opaque.
Kernel developers also merged the server-side code for TCP Fast Open (TFO) (1, 2, 3 and others). Linux 3.6 already contains client-side support for this experimental TCP extension developed by Google, which seeks to accelerate HTTP connection handshaking by combining the first two steps in the three-way handshake normally employed by TCP.
A range of optimisations for the still experimental Btrfs are designed to speed up Fsync (File Sync). Applications can now use this command to instruct the kernel to save data that is to be written to the storage devices instead of keeping it in cache. The developers say that these optimisations particularly improve the write performance of virtual machines when the VM images are located on Btrfs filesystems and the guest frequently requests Fsync; Btrfs previously had a reputation for offering rather poor performance in such scenarios.
Ext4 can now resize on volumes of more than 16TB in size. The CIFS (Common Internet File System) filesystem that gives access to Windows and Samba shares now supports SMB (Server Message Block) 2.0, which was introduced with Windows Vista, as well as its Windows 7 descendant, SMB 2.1. SMB2 is a generally restructured protocol that fixes numerous limitations and implementation weaknesses in the first generation of SMB, whose development was started in the 1980s and eventually stagnated.
The developers of the Nouveau driver have made major changes to the kernel-related part of the open source driver for NVIDIA graphics cores (1, 2, 3, 4, 5, 6 and others). It should now fit better to NVIDIA's chips, which the developers have gotten to know much better over the years through reverse engineering. The overall goal is a clean, simpler driver architecture that makes it easier to implement new features such as support for NVIDIA's Scalable Link Interface (SLI), which is not yet supported in Nouveau.
Major changes to the i915 Intel graphics driver are supposed to make its functions for configuring display outputs more robust and flexible. Sysfs can now be used to get information on the graphics processor's frequency and define limits in order to, for example, limit the maximum amount of power consumption (1, 2, 3 and others).
Changes to the Radeon graphics driver's monitor configuration code will, in some cases, allow newer AMD cores to manage more than two monitors with one phase-locked loop (PLL), making more multiple-monitor combinations possible than before and decreasing power consumption for some configurations (1, 2, 3, 4). New features in the Radeon driver include improvements for controlling backlight and interacting with the system firmware via ACPI, both of which should make brightness regulation work in more laptops than before (1, 2, 3, 4).
The iPhone tethering driver ipheth now supports the iPhone 5. Support for the runtime power-saving mechanisms in the driver for the popular HD audio chips is no longer experimental and will now be built in by default. The kernel developers have also expanded support for runtime power management in the HDA driver so that the PCI/PCIe device involved can sleep. Another addition to the kernel is a channel-mapping API for better querying and configuration of audio channels, which should be useful when setting up surround sound (1, 2, 3, 4, 5). The subsystem for human interface devices (HIDs) now supports the Sony PS3 Blu-ray Disc Remote Control. The gaming console's BD remote control used to work with BlueZ's user space driver, but the necessary code was recently removed. The wiimote driver now also works for the Nintendo Balance-Board.
The developers have also changed the placement of driver code within the kernel sources' drivers/media/ directory, moving many drivers to new subdirectories (1, 2, 3, 4 and others). Along with the changes to the Nouveau driver and the separation of the userspace header files, this is one of the main reasons why a diffstat analysis shows so many changes compared to Linux 3.6's source code.