Kernel Log: Linux 3.2 main development phase complete
by Thorsten Leemhuis
Linux 3.2 includes support for Hexagon CPUs, enhancements to the TCP stack, an upbeat SHA1 implementation and dozens of new and revised drivers. And Linux now has a Google+ page.
Last night, two weeks after releasing Linux kernel 3.1, Linus Torvalds published the first release candidate for Linux 3.2, which he has dubbed Sabre-Toothed Squirrel. This should mean that all of the major changes for kernel 3.2 have now been merged. Between now and the release of the final version, scheduled for late December or early January, the focus for kernel developers will be on bug fixes.
Among the features added by kernel developers is support for the architecture of Qualcom's Hexagon processors. The TCP stack in Linux 3.2 will contain the "proportional rate reduction" algorithm, which has been added by a Google developer and which should enable network connections to be restored faster following temporary data transfer problems. This should speed up data transfer. The CFS process scheduler is now able to limit the CPU time of process groups to prevent users using more than their allocated CPU resources even when unused CPU resources are available.
There is also a new experimental driver for EDAC (error detection and correction) on Intel Sandy Bridge processors, and a SHA1 implementation for x86-64 processors, which achieves higher throughput by using SSE3 or AVX commands. The Nouveau DRM/KMS driver now supports the newer Fermi generation graphics chips used in some recently released GeForce graphics cards. Linux 3.2 includes dozens of new drivers, as well as older drivers updated to support additional hardware. There have also been enhancements to the code for btrfs and ext4. In his release email, Torvalds highlights changes to the writeback code which all users are likely to benefit from. The Kernel Log series on The H Open will be reporting in detail on these and other new features in the coming weeks.
Torvalds took on a little over ten thousand commits for 3.2-rc1. According to diffstat analysis, in 3.2-rc1, kernel developers have merged a total of 1,628,369 lines of code and removed 1,406,545 lines (though it's worth noting that relocated code is included in both figures). This is roughly twice as many lines of code as recent main development tree kernel versions have tended to see, indeed you have to go back to Linux 2.6.0 to match it. One of the reasons for this is the hack at kernel.org, which put back the release of Linux 3.1 by around a month, giving kernel hackers more time to prepare changes which would not otherwise have been ready in time for the 3.2 merge window. Another reason for the high figure is a restructuring of network drivers which involved the relocation of large volumes of code. There has also been some restructuring in the architecture code. Two further culprits are the Ath6kl and Bcrm80211 drivers, which, following a prolonged period in the staging area, have now been deemed sufficiently mature to make their way into the network subsystem.
With the release of RC1 release and the opening up of Google+ to businesses and brands, Torvalds has also set up a Google+ page for Linux. He is considering using it to announce new kernel versions in future. Greg Kroah-Hartman was also busy last night and has released long-term kernels 2.6.32.47 and 2.6.33.20. The latter represents the end of maintenance of the 2.6.33 kernel series. Users of the real-time support offered by the RT tree, at whom maintenance of this series was largely targeted, are being advised to upgrade to kernel 3.0.