In association with heise online

15 May 2009, 17:01

Kernel Log: What's coming in 2.6.30 - Storage: RAID improvements, optimised CFQ Scheduler, SAS drivers

  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

The Kernel Log Penguin

by Thorsten Leemhuis

The next kernel version is to provide all that's necessary to convert, for example, a RAID 5 into a RAID 6 and vice versa. There are changes to the block layer designed to speed up the system, and new and improved drivers will offer better SAS support.

With the fifth release candidate of Linux 2.6.30 out a few days ago, the development of the next kernel version in the main development line continues to progress. As indicated by Linus Torvalds in his release email, the changes are slowly decreasing in number and size, which is what usually happens at this development stage.

As every development cycle tends to have eight or nine pre-release versions which often appear on a weekly basis, it will be another few weeks before Torvalds releases Linux 2.6.30. Nevertheless, the Kernel Log will continue its review of the major changes in Linux 2.6.30 with the following overview of the new developments in the storage infrastructure and driver areas.

Flexible cooperation

The developers have made quite a few changes to the code for MD (Multiple Device) software RAIDs (see list at the end of this article), which now also allow the number of devices in a RAID 5 to be reduced. As a result, a RAID-5 array can now be converted into a RAID 6 and back again; in addition, the kernel can convert a RAID 1 into a RAID 5. However, the current version of the mdadm userland tool is unable to handle these extensive conversions.

The MD code now also offers "data integrity support", which was first included in 2.6.27, as long as all the devices in an MD array and their respective controllers are also capable of it. Due to various changes, the same applies to the Device Mapper (DM), which now supports barriers better than it did before (1, 2).

Numerous changes have been made to the block layer and its CFQ I/O scheduler after the developers found some performance issues in this area while doing tests that related to the lengthy discussions around Ext3 and Ext4 – some of the issues were so serious that Torvalds even threatened to replace the standard I/O scheduler. However, the developers were able to track down and eliminate the causes. In some cases this results not only in measurable, but also in noticeable performance improvements (see also the article "Solving the ext3 latency problem").


Relevant Git-Pull-Requests:

  • Block layer 1, 2, 3, 4
  • Device Mapper (DM): 1, 2
  • IDE: 1, 2, 3, 4
  • SCSI: 1, 2


As we already mentioned in the second part of the "What's coming in 2.6.30" mini series of the Kernel Log, the SCSI subsystem now also supports the rather exotic OSDs (Object-based Storage Devices) (for example 1, 2, documentation). For the first time, the mpt2sas SCSI driver for SAS2004, SAS2008, SAS2108 and SAS2116 SAS-2.0 controllers by LSI has been included in the kernel. The stex driver now also supports some of the SAS-6G controllers by Promise. New in 2.6.29, Fibre Channel over Ethernet can now also handle FIP (FCoE Initialization Protocol), which serves for detecting and integrating Fibre Channel Forwarders (FCFs). After they already placed the firmware code of numerous SCSI drivers in separate files in versions 2.6.27, .28 and .29, the kernel developers have continued this work in 2.6.30 and split up a further few drivers.

Bartlomiej Zolnierkiewicz announced a few weeks ago that he completed all of the planned IDE subsystem restructuring tasks and will from now on focus mainly on the subsystem's maintenance and on minor extensions. This has already been noticeable during the development of 2.6.30, where we've seen considerably less activity compared to the sometimes comprehensive changes to the IDE code in the previous few kernel versions. Comparatively few major changes – among them the support of ATAPI devices in the sata_mvdriver, which handles Marvell ATA chips – were also made to the Libata subsystem, whose PATA drivers are used for the IDE adapters in most mainstream distributions.

Kernel Log – What's coming in 2.6.30

Other parts of the "What's coming in 2.6.30" mini series of the Kernel Log:

1. Network: New Wi-Fi drivers and other network novelties

2. File systems: New and revamped file systems

The article ""Steady growth: What's new in Linux 2.6.29" describes the new features of the kernel version in the main development line, current at the article's time of writing.

Further background and information about developments in the Linux kernel and its environment can also be found in previous issues of the Kernel Log at The H Open Source.

Minor gems

The kernel developers also discussed extensions to incorporate ATA-TRIM, which allows the kernel to tell SSDs that support the relatively recent ATA command which areas no longer hold any data ("discard"). However, only a patch has been included in the kernel to provide the basis for further changes likely to be integrated with 2.6.31.

What we have mentioned so far only describes the most important and recent changes the kernel hackers have made to the storage-related code of Linux. Many further changes can be found in the following list containing the respective commits in the main development branch; the links directly display the changes in a web frontend, where the commit comment and the patch itself offer more information about the perhaps minor, but by no means unimportant changes.

Block Layer

Device Mapper (DM)



Mapper Device (DM)





Further background and information about developments in the Linux kernel and its environment can also be found in previous issues of the Kernel Log at The H Open Source:

Older Kernel Logs can be found in the archives or by using the search function at The H Open Source.



Print Version | Send by email | Permalink:

  • July's Community Calendar

The H Open

The H Security

The H Developer

The H Internet Toolkit