KernelNewbies:

Linux 2.6.30 was released on the 9th of June, 2009.

Summary: This version adds the log-structured NILFS2 filesystem, a filesystem for object-based storage devices, a caching layer for local caching of NFS data, the RDS protocol which delivers high-performance reliable connections between the servers of a cluster, a distributed networking filesystem (POHMELFS), automatic flushing of files on renames/truncates in ext3, ext4 and btrfs, preliminary support for the 802.11w drafts, support for the Microblaze architecture, the Tomoyo security module, DRM support for the Radeon R6xx/R7xx graphic cards, asynchronous scanning of devices and partitions for faster bootup, MD support for switching between raid5/6 modes, the preadv/pwritev syscalls, several new drivers and many other small improvements.

TableOfContents()

1. Prominent features (the cool stuff)

1.1. NILFS2, a log-structured filesystem

Contributor: NTT Labs (Nippon Telegraph and Telephone Corporation)

NILFS2 is a new filesystem which uses a [http://en.wikipedia.org/wiki/Log-structured_file_system log-structured] design. What makes log-structured filesystems different is that they treat the whole disk as a consecutive list of blocks (called log). All the operations append data at the end of the log, they never rewrite blocks (except when there's no space left - in that case, new blocks are reclaimed from the start of the log). The advantage of this approach is that all modifications an creations are converted into sequential operations, which are faster. Crashes can't corrupt the filesystem. On mount, the filesystem detects the real end of the log, and continues working from that point.

Another advantage of this approach is that the log offers a coherent historical view of all the operations done in the disk in the past. This is called "continuous snapshotting" - snapshots of modifications done in all the filesystem at any time are created automatically due to the log-structure design, with no requeriment of intervention from an admin, and with the filesystem size as the only limit. NILFS2 allows to access those snapshots and even mount them (on read-only mode).

NILFS2 is [http://www.nilfs.org/en/current_status.html under development]. Code: [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=fs/nilfs2;hb=HEAD fs/nilfs2/]. Filesystem web page: [http://www.nilfs.org www.nilfs.org]

1.2. POHMELFS and DST

Contributor: [http://www.ioremap.net/ Evgeniy Polyakov]

Recommended LWN articles: [http://lwn.net/Articles/246272/ Distributed storage] and [http://lwn.net/Articles/267896/ CRFS and POHMELFS]

1.3. Reliable Datagram Sockets (RDS) protocol support

Contributor: [http://www.openfabrics.org www.openfabrics.org] (Particularly, [http://oss.oracle.com/pipermail/rds-devel/2007-November/000228.html Oracle])

RDS provides a high bandwidth, low latency, reliable inter-process communication protocol and transport system between the servers in a cluster. It provides a reliable connection between any two nodes in the cluster. This allows applications to use a single socket to talk to any other process in the cluster - so in a cluster with N processes you need N sockets, in contrast to N*N if you use a connection-oriented socket transport like TCP. In beta testing, RDS over infiniBand provided up to 60 percent performance improvement over Gigabit Ethernet for interconnect-intensive applications. RDS is already used by some products like Oracle and in Silverstorm's Quicksilver.

Code: [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=net/rds;hb=HEAD net/rds/]

1.4. Fastboot

Recommended LWN article: [http://lwn.net/Articles/314808/ An asynchronous function call infrastructure]

Contributor: Intel

Some parts of the kernel boot process can delay the whole process too many time (by kernel's standards): scanning in search of storage devices for a given controller, and searching for partitions, for example, can be slow, because the scanning is synchronous, only one device is scanned at a time, and the kernel has to wait for the devices. With this feature, those steps are done asyncrhonously, so the kernel can keep booting the rest of the kernel while the storage devices are scanned in parallel. This feature speeds up the total kernel boot time significantly

Code: [http://git.kernel.org/linus/9710794383ee5008d67f1a6613a4717bf6de47bc (commit)]

1.5. IEEE 802.11w (wireless management frame protection support)

Contributor: Atheros

The [http://en.wikipedia.org/wiki/IEEE_802.11w IEEE 802.11w] standard is a proposed (still not approved) amendment to the IEEE 802.11 standard (wifi) that increase the security of its management frames. In this version Linux adds a preliminary implementation for this future standard, developed according to the current drafts.

Code: [http://git.kernel.org/linus/5394af4d86ae51b369ff243c3f75b6f9a74e164b (commit 1], [http://git.kernel.org/linus/fb7333367632c67d8b6b06fb8d906cdabb11b02a 2], [http://git.kernel.org/linus/765cb46a3fc856245ea68a7c961ac87c77e4ae2d 3], [http://git.kernel.org/linus/3cfcf6ac6d69dc290e96416731eea5c88ac7d426 4], [http://git.kernel.org/linus/54604d3a827b37525ef017adba313c7112e0f484 5], [http://git.kernel.org/linus/22787dbaa3b952602542506e0426ea6d5f104042 6], [http://git.kernel.org/linus/fdfacf0ae2e8339098b1164d2317b792d7662c0a 7], [http://git.kernel.org/linus/fea147328908b7e2bfcaf9dc4377909d5507ca35 8], [http://git.kernel.org/linus/1acc97b63a3f32481ebbb4e831323e9aa8834f66 9], [http://git.kernel.org/linus/97ebe12a035e11f8af7a06a34f4d848f9b2f0b49 10], [http://git.kernel.org/linus/63a5ab82255a4ff5d0783f16427210f1d45d7ec8 11], [http://git.kernel.org/linus/1f7d77ab69789980dad44e1af7afd3a68cd48276 12], [http://git.kernel.org/linus/4375d08350e3661d5e8860d33eea084e47ba01cf 13)]

1.6. preadv()/pwritev() system calls

Recommended LWN article: [http://lwn.net/Articles/164887/ Some new system calls]

Contributor: Red Hat

These syscalls are a pretty straightforward combination of pread/pwrite and readv/pwrite. BSD systems have such system calls too, for example [http://www.daemon-systems.org/man/preadv.2.html NetBSD]

Code: [http://git.kernel.org/linus/dac1213842f5caf081804a11d87d2a39a21d6f55 (commit 1], [http://git.kernel.org/linus/6949a6318e60aeb9c755679ac7f978aefe8c1722 2], [http://git.kernel.org/linus/f3554f4bc69803ac2baaf7cf2aa4339e1f4b693e 3)]

1.7. EXOFS, a filesystem for Object-Based Storage Devices

Recommended LWN article: [http://lwn.net/Articles/305740/ Linux and object storage devices]

Contributor: Panasas

Traditional storage devices offer a block-based interface. However, there's a new generation of experimental storage devices that are trying to offload some work from the host, and offer a higher-level interface: an array of objects. The OS interfaces with the objects, and the drive hides all the storage details, removing most of the low-level details of the filesystem. A traditional filesystem can then be easily implemented on top of this interface. The OSD interface works on top of SCSI.

In this release Linux adds support for the OSD protocol on the SCSI stack, and exofs, an implementation of a traditional unix filesystem that works on top of OSD storage devices.

libosd: [http://git.kernel.org/linus/71969fd9e2c523d22bf1742eb31f1562247710eb (commit 1], [http://git.kernel.org/linus/82443a58d361123d418033e9e32ac29a842fce68 2], [http://git.kernel.org/linus/de258bf5e63863f42e0f9a7c5ffd29916a41e399 3], [http://git.kernel.org/linus/02941a530ef736210b4cf8b24dd34c238d5d5a40 4], [http://git.kernel.org/linus/95b05a7db5865855c32e0bb8b244c3a7aac1cfeb 5], [http://git.kernel.org/linus/b799bc7da0ce5ba4a988c521a8fb10452eb419f0 6], [http://git.kernel.org/linus/4ef1a3d70d02663f6bfe901db629e8e608da15b1 7], [http://git.kernel.org/linus/345c435dbb0b77b00ffe73801102533e24c647af 8], [http://git.kernel.org/linus/3e08613037fd4ec0b716a215602c4bdb3d0d9171 9], [http://git.kernel.org/linus/ae30c994a4bb70510fdcb9e7223805bb2a8bc9ee 10], [http://git.kernel.org/linus/c6572c983726fe3f3bb5f07e9afe3a9b8e402d1b 11], [http://git.kernel.org/linus/1b9dce94c8a24a3f1a01fcdf688f2d903b32acdf 12], [http://git.kernel.org/linus/98f3aea2bd4b4f9cd7a6a6479ed9410787f756fd 13], [http://git.kernel.org/linus/78e0c621deca08e5f802383dbe75fd20b258ea4e 14], [http://git.kernel.org/linus/6864abd8b730435d6ae9cb061095229a5a85153f 15] [http://git.kernel.org/linus/68274794c69991121eaf0a4a35b78aa7f088ec2c 16)],

EXOFS: [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=fs/exofs;hb=HEAD fs/exofs/]

1.8. NFS 4.1 preliminary support

Contributors: Panasas, Netapp and IBM.

NFS 4.1 is being developed at the IETF. From the many new features in NFSv4.1, this Linux version adds the mandatory-to-implement NFSv4.1 Sessions. Other features, [http://pnfs.com Parallel NFS] in particular, are still [http://wiki.linux-nfs.org/wiki/index.php/PNFS_prototype_design under development out of tree] and will be added in later releases.

To enable this experimental new protocol (which is disabled by default) you need an updated nfs-utils.

1.9. FS-Cache, a caching filesystem

Recommended LWN article: [http://lwn.net/Articles/100321/ A general caching filesystem]

Contributor: Red Hat

FS-Cache is the Linux implementation of a cache layer for networking filesystems, similar to the [http://en.wikipedia.org/wiki/CacheFS CacheFS] of other Unixes. With FS-Cache, data from the networked filesystems can be cached on the disk, speeding up operations.

This version adds support for NFS and AFS, but it's a generic layer that could be used by other networking filesystems or even non-networking (such as ISO9660).

Code: Slow-work related changes: [http://git.kernel.org/linus/07fe7cb7c7c179f473fd9c823348fd3eb5dad369 (commit 1], [http://git.kernel.org/linus/109d9272c423f46604d45fedfe87e21ee0b25180 2], [http://git.kernel.org/linus/12e22c5e4bc08ab4b05ac079fe40d9891c5e81a0 3], [http://git.kernel.org/linus/8f0aa2f25b31ba27db84259141e52ee6ec0d2820 4)], FS-cache [http://git.kernel.org/linus/03fb3d2af96c2783c3a5bc03f3d984cf422f0e69 (commit 1], [http://git.kernel.org/linus/266cf658efcf6ac33541a46740f74f50c79d2b6b 2], [http://git.kernel.org/linus/2d6fff637037395cc946ef910a880b5fa67b5370 3], [http://git.kernel.org/linus/0dfc41d1efcc4180abfd32f68f0ade540e636ff6 4], [http://git.kernel.org/linus/06b3db1b9bccdc8c2c743122a89745279e5ecc46 5], [http://git.kernel.org/linus/7394daa8c61dfda4baa687f133748fa0b599b017 6], [http://git.kernel.org/linus/a6891645cf2ddd4778096848a864580e7258faba 7], [http://git.kernel.org/linus/0e04d4cefcf4d8fbbdb2c50e93ad541582933fd2 8], [http://git.kernel.org/linus/4c515dd47ab41be3f89e757d441661795470b376 9], [http://git.kernel.org/linus/955d00917f0c094e0f2fb88df967e980ab66b8ca 10], [http://git.kernel.org/linus/726dd7ff10c217dd74329c94643dc8ebea27334b 11], [http://git.kernel.org/linus/2868cbea72dc89ae0eb17693596b1dedaafff1c5 12], [http://git.kernel.org/linus/36c9559022850f919269564a74bf17fdabf4bb30 13], [http://git.kernel.org/linus/ccc4fc3d11e91477036d1f82bfa2d442f6ce77f0 14], [http://git.kernel.org/linus/952efe7b7840e1c726ae88222245e4efe6bd88f3 15] [http://git.kernel.org/linus/b510882281d56873e1194021643b7c325336f84f 16], [http://git.kernel.org/linus/385e1ca5f21c4680ad6a46a3aa2ea8af99e99c92 17] [http://git.kernel.org/linus/800a964787faef3509d194fa33268628c3d1daa9 18], [http://git.kernel.org/linus/9ae326a69004dea8af2dae4fde58de27db700a8d 19)]; AFS and NFS changes: [http://git.kernel.org/linus/9b3f26c9110dcea62716aca9b8c68ceb482227ef (commit 1], [http://git.kernel.org/linus/6b9b3514aa188183e74049853be43380ad49314f 2], [http://git.kernel.org/linus/c6a6f19e22da0a3d74214ee010224c9a30a794c1 3], [http://git.kernel.org/linus/3b9ce977b2f31b6c396b6fb620df9881a30fac9d 4], [http://git.kernel.org/linus/8ec442ae4c6577ed181682e534d4eef524e30b3c 5], [http://git.kernel.org/linus/147272813e043fb44bd112527951da70c1e663de 6], [http://git.kernel.org/linus/08734048b380103f0412f58b84c2f76a2c8b599f 7], [http://git.kernel.org/linus/10329a5d48f5abc14a37d30b706e330f8598297a 8], [http://git.kernel.org/linus/ef79c097bbe9724e13937271b3457df560e00370 9], [http://git.kernel.org/linus/d599064a1bca7bcbaabe54b94fa73ea86952cae3 10], [http://git.kernel.org/linus/6a51091d0775cdc4a923f2172c61925ad416aa32 11], [http://git.kernel.org/linus/545db45f0fc0d4203b045047798ce156972a3056 12], [http://git.kernel.org/linus/1fcdf534885b65e6d39780a5a89e9dfc5431cf68 13], [http://git.kernel.org/linus/f42b293d6d5259043a8944b556eeab427c695d57 14], [http://git.kernel.org/linus/9a9fc1c03315f1606596e55b4096d39e2079a041 15] [http://git.kernel.org/linus/7f8e05f60c87646e12c761fef61dd71a7e67112e 16], [http://git.kernel.org/linus/5d1acff159730770cbab68b19443518c92ab1000 17] [http://git.kernel.org/linus/b797cac7487dee6bfddeb161631c1bbc54fa3cdb 18)], Documentation: [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/caching/fscache.txt Documentation/filesystems/caching/fscache.txt].

1.10. Tomoyo, an alternative Mandatory Access Control

Recommended LWN article: [http://lwn.net/Articles/277833/ TOMOYO Linux and pathname-based security]

Contributor: NTT DATA CORPORATION

There're currently two security subsystems: Selinux and Smack. Tomoyo is a new pathname-based access control.

[http://git.kernel.org/linus/f9ce1f1cda8b73a36f47e424975a9dfa78b7840c (commit 1], [http://git.kernel.org/linus/c73bd6d473ceb5d643d3afd7e75b7dc2e6918558 2], [http://git.kernel.org/linus/9590837b89aaa4523209ac91c52db5ea0d9142fd 3], [http://git.kernel.org/linus/b69a54ee582373d76e4b5560970db5b8c618b12a 4], [http://git.kernel.org/linus/26a2a1c9eb88d9aca8891575b3b986812e073872 5], [http://git.kernel.org/linus/f7433243770c77979c396b4c7449a10e9b3521db 6], [http://git.kernel.org/linus/00d7d6f840ddc947237307e022de5e75ded4105f 7)]

Tomoyo Web Site: [http://tomoyo.sourceforge.jp/wiki-e/ http://tomoyo.sourceforge.jp/wiki-e/]

1.11. Filesystems performance improvements

Shortly after the 2.6.29 release, lots of discussions occurred on LKML about disk I/O (summary available [http://lwn.net/Articles/326471/ at LWN]), how (and why) a fsync () call can take minutes, and the effect of getting a file zeroed rebooting just after a rename or a truncate. Some changes have been done to fix those problems: implicit internal fsync of a file after a rename or truncate in ext3, ext4 and btrfs, faster fsync() in ext3, default to data=writeback mode in Ext3, and improvements to CFQ. The flame has also brought the topic of atimes updates, and which has resulted into [http://valhenson.livejournal.com/36519.html merging relatime and making it a default].

1.12. LZMA/BZIP2 kernel image compression

Contributor: Alain Knaff The kernel compresses the kernel with GZIP, but this version adds support to compress the kernel image with the LZMA or BZIP2 compression algorithms. The kernel size is about 10 per cent smaller with bzip2 in comparison to gzip, and about 33 per cent smaller with lzma.

Code: [http://git.kernel.org/linus/bc22c17e12c130dc929218a95aa347e0f3fd05dc (commit 1], [http://git.kernel.org/linus/30d65dbfe3add7f010a075991dc0bfeaebb7d9e1 2], [http://git.kernel.org/linus/b172fd882d201cf8aa67cddd9c1a023421fd4956 3], [http://git.kernel.org/linus/ae03c49964af5033534e518eebe439c3b90f43a7 4], [http://git.kernel.org/linus/0f5e2d2484ccd3062bb1f63083bafa37041bc868 5)]

1.13. Microblaze CPU architecture

Contributor: Michal Simek, with donations from [http://www.petalogix.com/ PetaLogix] and [http://www.xilinx.com/ Xilinx]

This release adds support for the MMU-less [http://en.wikipedia.org/wiki/MicroBlaze Microblaze] CPU architecture. It has been

Code: [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=arch/microblaze;hb=HEAD arch/microblaze/]

1.14. Integrity Management Architecture

Contributor: IBM

Recommended LWN article: [http://lwn.net/Articles/227937/ Integrity management in the kernel]

The Trusted Computing Group(TCG) runtime Integrity Measurement Architecture(IMA) maintains a list of hash values of executables and other sensitive system files, as they are read or executed. If an attacker manages to change the contents of an important system file being measured, we can tell. If your system has a TPM chip, then IMA also maintains an aggregate integrity value over this list inside the TPM hardware, so that the TPM can prove to a third party whether or not critical system files have been modified.

Code: [http://git.kernel.org/linus/659aaf2bb5496a425ba14036b5b5900f593e4484 (commit 1], [http://git.kernel.org/linus/6146f0d5e47ca4047ffded0fb79b6c25359b386c 2], [http://git.kernel.org/linus/3323eec921efd815178a23107ab63588c605c0b2 3], [http://git.kernel.org/linus/bab739378758a1e2b2d7ddcee7bc06cf4c591c3c 4], [http://git.kernel.org/linus/4af4662fa4a9dc62289c580337ae2506339c4729 5], [http://git.kernel.org/linus/f4bd857bc8ed997c25ec06b56ef8064aafa6d4f3 6], [http://git.kernel.org/linus/1df9f0a73178718969ae47d813b8e7aab2cf073c 7)]

2. Various core changes

3. PCI

4. Wi-Fi

5. Security

6. Networking

7. Ftrace

8. Filesystems

9. Crypto

10. DM/MD

11. Virtualization

12. Architecture-specific changes

13. Drivers

13.1. Storage

13.2. Graphics

13.3. Network

13.4. Input

13.5. Sound

13.6. V4L/DVB

13.7. USB

13.8. HWMON

13.9. Bluetooth

13.10. Staging drivers

Warning: The staging drivers are in a alpha development stage, and they can't even considered experimental, but they're included in the source tree in the hope of encouraging its development and stabilization

13.11. I2C

13.12. RTC

13.13. HID

13.14. MTD

13.15. FireWire

See also FireWire release notes at [http://ieee1394.wiki.kernel.org/index.php/Release_Notes kernel.org].

13.16. EDAC

13.17. Serial

13.18. LEDs

13.19. ACPI

13.20. Various

14. Other sources about 2.6.30 kernel


KernelNewbies: Linux_2_6_30 (last edited 2009-06-11 04:20:48 by proxy01)