File systems
Btrfs, the experimental "next generation file system for Linux" can now write at more than 1 GB per second on fast hardware and now matches XFS for speed on our test system. Btrfs' previous maximum data transfer speed was 400 MB per second, as this maxed out CPU usage. For delayed allocations, Btrfs is now more reliable in reserving enough space for metadata. There is some new experimental code for 'discard operations' which should eventually allow the file system to tell SSDs which blocks have been freed by deleting data – however the requisite support in the SCSI and Libata subsystems is still a work in progress, but might make it into kernel 2.6.33.
Numerous changes to Ext3 and Ext4 have made their way into the main development tree via Theodore Ts'o (1, 2). One of them speeds up the fs_mark benchmark by around fifty per cent under certain set-ups. 'Data=guarded' mode in Ext3, long under development, has once more been left out in the cold.
The kernel's VFAT code will not mount FAT drives by default with the behaviour activated by the "shortname=lower" option, but will instead now default to use "shortname=mixed". This should mean that upper and lower case in file names will no longer be changed when copying using Linux.
About the source code management system
Many of the links in this article point to the relevant commits in the web front end of Linus Torvalds' Git source code management system for Linux, because these commits tend to contain a lot more information about the respective changes. The commit comment in the mid section of the web page displayed by the Git web front end is often a particularly helpful source of further information. This is where the author of a patch usually describes the background and intended effects of the changes.
The bottom section of the Git web front end lists the files that are affected by the patch. The "diff" link behind each file name shows how the patch modifies the respective file; if you want to view the complete patch in its raw form, click on the commitdiff link. Even if you don't have any programming skills the patches are often a good source of information, because they also contain changes to the documentation and comments within the code.
Block layer
The CFQ (Completely Fair Queuing) I/O scheduler used by many distributions now optimises queries for short response times. This should mean that when programs are running in the background which process large volumes of data, desktop applications running in the foreground will no longer be slowed to the same extent and will consequently feel faster. The new behaviour does, however, cause some patterns of access to work a little slower, for which reason CFQ's low latency mode can also be deactivated via sysfs.
Axboe has also introduced a major rewrite of the writeback infrastructure, the fruit of several months work, as a result of which each device is now dealt with by its own thread. This and other changes should significantly increase data throughput for writeback-intensive access scenarios and cause them to run more evenly. Axboe includes two benchmark graphics and various measurements in his commit comments to underline the point. Also merged was blk-iopoll, which is a NAPI-like approach to accessing storage devices which aims to increase maximum throughput by reducing IRQs.
A second shot at devfs
Following lengthy discussions over the summer, devtmpfs, aka 'devfs 2.0' to its detractors, has now made it into the kernel. It allows the kernel, on booting, to itself create and mount a RAMdisk populated with a device file system. This can speed up boot time and makes it possible to boot without using an initrd populated with udev or similar.
These, however, are just some of the benefits of devtmpfs, which has come under heavy fire from some quarters. Torvalds, however, liked the concept, in particular the fact that the kernel is now able to carry out the whole boot process autonomously.
Next: Virtualisation, Tracing, Power management