Archive for April, 2009


What coming in kernel linux 2.6.30…….

April 18, 2009

What’s coming in 2.6.30 – Network: New Wi-Fi drivers and other network novelties

Kernel Log Penguin

The next major Linux version will include new Wi-Fi drivers for chips from Atheros, Intel, Intersil/Prism and Marvell and new drivers for Intel LAN chips. The kernel will also in future make better use of energy saving features in the latest Wi-Fi hardware and Oracle is contributing code for the Reliable Datagram Sockets (RDS) cluster protocol.

As with previous kernel versions, the recent release of the second pre-release version of Linux 2.6.30 saw a good few major patches which had missed the merge window find their way into the main Linux development tree. Further major changes are rare in the second phase of the development cycle, so that the second pre-release version should now contain all the major changes for the next major kernel revision.

The Kernel Log on The H is taking the opportunity to open the “What’s coming in 2.6.30” series with a description of the major networking-related changes and will be extended with further instalments over the next few weeks, building up to a detailed description of all the major changes in 2.6.30 in the various functional areas within the Linux kernel, until Linus Torvalds releases Linux kernel 2.6.30 in around seven to ten weeks time.

Code recycling

In version 2.6.30, Linux will for the first time include the ar9170 Wi-Fi driver for Atheros’ eponymous 802.11n USB chip set (1, 2, 3, 4, 5, 6). The driver is brand spanking new, but re-uses some of the code from Atheros’ otus driver, which was released a few months ago. The latter was added to the staging area in Linux 2.6.29; in the opinion of some Wi-Fi driver developers, however, re-jigging and improving the staging driver to meet kernel hacker quality standards would have taken more work than writing a new driver tailored to the kernel’s Wi-Fi stack, resulting in the development of the new driver.

Also making its debut, driven largely by Marvell developers, is the mwl8k driver for Marvell 88w8xxx (Topdog) series PCI and PCIe Wi-Fi chips. Currently, however, it only supports the 88w8687 Wi-Fi chip in STA mode on channels 1 to 11. Also still some way off technical maturity is the new at76c50x-usb driver for Atmel’s old at76c503, at76c505 and at76c505a Wi-Fi chips. In the long term it is intended to replace the at76_usb driver, which was incorporated into the kernel’s staging area in 2.6.28. As with otus and ar9170, some of the old driver code has found its way into the new driver, which is based on the kernel’s Mac80211 Wi-Fi stack.

Clean up work and energy saving functions

To simplify maintenance, the kernel development team has combined parts of the iwl3945 driver with the files for drivers for newer Intel Wi-Fi chips (e.g. 1, 2, 3, 4). The latter have been extended to include support for Intel’s 1000, 6000 and 6050 Wi-Fi chips (1, 2, 3, 4).

The kernel hackers have also improved support for runtime energy saving features in modern Wi-Fi hardware in both the Mac80211 Wi-Fi stack and in some drivers (e.g. 1, 2, 3; further commits can be found in the list at the end of this article). There have also been enhancements to the code for suspending to, and resuming from, RAM and disk.


The kernel development team have added support for the Generic Receive Offload (GRO) infrastructure, introduced in 2.6.29, to many LAN drivers. These include the igbvf network driver for Intel’s 82576, ethoc for OpenCores’ 10/100 Mbit LAN Chip and vxge for Neterion’s X3100 series 10GbE PCIe I/O Virtualized Server adapters (e.g. 1, 2, Documentation).

Also new in 2.6.30 is code introduced by one Oracle developer (Documentation) to provide support for the Reliable Datagram Sockets (RDS) server cluster protocol. This was originally developed jointly by Cisco Systems and Oracle, before being transferred to the Open Fabrics Alliance software stack.

In Brief


  • Having offloaded the firmware code for many network drivers into separate files in 2.6.27, .28 and .29, the kernel developers are continuing the process in 2.6.30.



  • The packet filter code now offers a userspace interface allowing packets to be time stamped.


  • Bluetooth: Kernel hackers have adapted the Bluetooth stack security model for the changes made in Bluetooth 2.1, as a result of which the kernel can now utilise Secure Simple PairingPDF.

Minor gems

The changes described are just some of the more significant changes recently undertaken by kernel hackers in the networking field. The following list includes numerous further major commits for 2.6.30 in the main Linux development tree; the links lead directly to the Git version control system web interface, where comments on the commits and patches themselves provide wide-ranging information on the less important, but far from insignificant, changes.


The new btrfs and ext4 filesystem…..

April 5, 2009


Btrfs is a new copy on write filesystem for Linux aimed at implementing advanced features while focusing on fault tolerance, repair and easy administration. Initially developed by Oracle, Btrfs is licensed under the GPL and open for contribution from anyone.

Linux has a wealth of filesystems to choose from, but we are facing a number of challenges with scaling to the large storage subsystems that are becoming common in today’s data centers. Filesystems need to scale in their ability to address and manage large storage, and also in their ability to detect, repair and tolerate errors in the data stored on disk.
Btrfs is under heavy development, and is not suitable for any uses other than benchmarking and review. The Btrfs disk format is not yet finalized, but it will only be changed if a critical bug is found and no workarounds are possible.

The main Btrfs features include:

* Extent based file storage (2^64 max file size)
* Space efficient packing of small files
* Space efficient indexed directories
* Dynamic inode allocation
* Writable snapshots
* Subvolumes (separate internal filesystem roots)
* Object level mirroring and striping
* Checksums on data and metadata (multiple algorithms available)
* Compression
* Integrated multiple device support, with several raid algorithms
* Online filesystem check
* Very fast offline filesystem check
* Efficient incremental backup and FS mirroring
* Online filesystem defragmentation

Currently the code is in an early implementation phase, and not all of these have yet been implemented. See the Development timeline for detailed release plans.

Ext4 was released as a functionally complete and stable filesystem in Linux 2.6.28, and it’s getting included in all the modern distros (in some cases as the default fs), so if you are using a modern distro, it’s possible that you already have Ext4 support and you don’t need to modify your system to run Ext4.

It’s safe to use it in production environments, but as any piece of software, it has bugs (which are more likely to be hit in the first stable versions). Any known critical bug will be quickly fixed. If you find one, you can contact the Ext4 developers at the ext4 mailing list. They sometimes also can be found on IRC.
Getting Ext4 code
For people who build their own kernel

1. Start with a 2.6.28 or later kernel. It is highly recommended that you apply the latest patchset (if available) to get the latest bug fixes. In your kernel’s .config file, enable EXT4_FS (along with EXT4_FS_XATTR and EXT4_FS_POSIX_ACL if you like).

2. Compile the latest version of e2fsprogs (as of this writing 1.41.4) from or from Sourceforge. Note that it is highly important to install the mke2fs.conf file that comes with the e2fsprogs 1.41.x sources in /etc/mke2fs.conf. If you have edited the /etc/mke2fs.conf file, you will need to merge your changes with the version from e2fsprogs 1.41.x.