Kernel Log: Coming in 2.6.37 (Part 3) - Network and storage hardware
by Thorsten Leemhuis
Numerous changes to the network and storage code are to increase processing speed and improve the system's hardware support. Among the new additions are a PPTP stack, various drivers for Wi-Fi hardware by Atheros, Broadcom and Realtek, and code for hard disks with a logical sector size of 4 Kbytes.
Responding to the Linux 2.6.37-rc5 release email, Tony Luck last week projected that the final version 2.6.37 could well be released before Christmas, as things have apparently been running very smoothly. Linus Torvalds has a similar, although not quite as optimistic a view: he said that even if things run smoothly, he doesn't think anybody wants the merge window open over the holidays. Torvalds therefore anticipates that unless new problems appear and cause delay, he will release kernel version 2.6.37 in early January, .
The Kernel Log will continue its "Coming in 2.6.37" mini series with a discussion of the advances in terms of storage and network hardware drivers and infrastructure. Part 1 of the series described the changes in the graphics hardware area, while part 2 discussed the file system changes. In the coming weeks, further articles will discuss the changes to the kernel's architecture code, drivers and surrounding infrastructure.
A kernel implementation of the Point-to-Point Tunnelling Protocols (PPTP) used in VPNs has been added to the network subsystem; according to the relevant commit comment, it is discernibly faster and puts less strain on the CPU than existing user space PPTP stacks. The new kernel functions are accessible via accel-pptp.
Another new addition is the bna driver for Brocade's 1010 and 1020 10Gb Ethernet chips. The bnx2x driver now supports the Broadcom 57712; other additions to the kernel include a network driver for the tile architecture's LAN chips as well as LAN drivers and CAN drivers for Intel's Topcliff Embedded PCH. The kernel now supports the CAIF Shared Memory Transport Protocol for ST Ericsson (STE) U5500 chips (1, 2).
Support has been extended for Bluetooth components in Wi-Fi / BT combo hardware with Atheros chips run via ath9k. The kernel now also recognises the Bluetooth controllers in MacBookAir3,1(2), MacbookPro 6,2 and MacbookPro 7,1 devices. USB auto-suspend in the btusb Bluetooth USB driver is now enabled by default; this should reduce power consumption when there's no activity.
Network subsystem maintainer David Miller lists various further important changes in his main Git-Pull request. He highlights numerous improvements introduced by Eric Dumazet to optimise routing as well as neighbour and device handling; links to some of these changes are included in the "minor gems" section below. Due to the changes, routing tests now reportedly run faster with the routing cache disabled. However, the maintainer says that the cache is still required for other tasks and can't just be removed. Further background information about the optimizations can be found in the slides from a presentation recently given by Miller – "Linux Networking: The RISE of the congestion window, the FALL of the routing cache, and the LOCALITY of packets".
With Linux version 2.6.37, the developers have integrated the carl9170 driver for Atheros AR9170 chips into the kernel (for instance 1, 2, 3, 4, 5). These components were previously supported via the ar9170usb and otus drivers. The ar9170usb driver was originally intended to replace the otus driver, which is located in the staging area, but it never managed to match the range of features, speed, stability and quality of otus. Carl9170 has now apparently achieved this, and otus has consequently been thrown out; in the medium term, ar9170usb will probably suffer the same fate.
Various other changes affecting the network hardware have been made in the staging area; this is the kernel area for drivers and other independent code which doesn't meet its developers' or the kernel hackers' quality standards. The newly integrated rtl8712 staging driver replaces the rtl8192su driver for USB-802.11n chips by Realtek; both drivers use a separate Wi-Fi stack, which is one of the reasons why they are located in the staging area. However, Wi-Fi driver developer Larry Finger has indicated that Realtek is now putting more effort into developing Linux drivers.
The staging area now includes the brcm80211 open source driver developed by Broadcom for its 802.11n Wi-Fi components. Features such as the support of power management and data encryption techniques have been on the kernel hackers' to-do list since the driver was first introduced back in September. The same applies to transmissions via 40 MHz channels – this is an optional feature of the 802.11n standard which is, however, required to achieve the maximum gross bit rate of 300 Mbits/s.
The "minor gems" section at the end of this article contains links to several commits that improve the b43 driver's as yet rudimentary 802.11n support; this driver addresses other Broadcom Wi-Fi components. Most of the programming was done by Rafał Miłecki, who recently stated in a blog posting that, after a year of further development work, a modified version of the B43 driver now works on the BCM4328. Responding to a question, Miłecki added that the chips supported by brcm80211 are structurally very different from those supported by b43 – but that many elements for addressing the PHY are similar, and he therefore believes that b43 will be further improved in the long term and will eventually support the chips currently covered by brcm80211.