The 2.6.31 merge window. Here we go again, folks, with a pile of updates. Here is a sample of the major updates.

Per-BDI writeback flusher threads. Jens Axboe posted version 10 of his per-BDI writeback flusher threads that have been covered a number of times by this podcast already. Since the previous version, a number of (relatively minor) fixes have been made, and it is really looking ready to be merged.

Early boot SLAB. Pekka Enberg continues the migration away from early bootmem to use of earlier SLAB initialization and usage. He posted a round of fixes for 2.6.31 that included one from Yinghai Lu affecting genirq slab allocation for irq_affinity that had apparently caused various lockdep and lock up problems for some of the assembled kernel hackers.

lguest. Rusty Russell's latest lguest tree now includes support for PAE. As you might recall, lguest is a minimal 32-bit x86 hypervisor for Linux kernel developers intended to allow experimentation with virtualization without being tied to a specific ABI or the complexities of Xen or KVM. Rusty also posted a number of other updates, including some minor updates to virtio.

VFS. Al Viro posted part 1 of the proposed VFS patches for 2.6.31. As he noted, there were more people than usual involved. Patches included superblock method santization, more pushing of locking into filesystems, and a speedup of mnt_want_write from Nick Piggin.

CUSE (Character device in userspace). Miklos Szeredi requested that support for CUSE be merged in 2.6.31. CUSE (Character Device in UserSpace) enables one to write chatever device drivers in userspace in much the same way that filesystems can be implemented in userspace today, using FUSE. Indeed, it borrows some of the existing FUSE infrastructure. The patch series comes with an example implementation of legacy OSS (Open Sound System) emulation called OSSP, that uses PulseAudio on its userspace side for the sound backend.

Crypto. Herbert Xu posted a series of crypto updates including 64-bit support for VIA crypto/RNG, more operation modes for Intel AES, and a slight change to the compress API for squashfs.

oprofile. Robert Richter posted a series of 23 patches implementing updates to oprofile for 2.6.31, mainly targeting x86. Most of the patches replace macro definitions by function calls and implement internal 64 bit usage for MSR (Machine Status Register) access. struct op_x86_model_spec has also been extended to better describe the x86 model, as a first step toward merging similar model handling code implemented elsewhere in the kernel.

Kmemcheck. Vegard Nossum posted a series of patches implementing kmemcheck support for the 2.6.31 merge window. Kmemcheck is a feature which can (at run-time) detect some uses of uninitialized memory within the kernel, similar to the mechanism offered in Valgrind to do memcheck and used in userspace. It is self-contained in that it has no effect when CONFIG_KMEMCHECK=n.

VDSO (Virtual Dynamic Shared Object). Modern Linux systems use VDSO as a means for the kernel to provide fast-linking of certain commonly used functions into code provided by the kernel and mapped into each process' address space. This can really speed up services such as gtod (gettimeofday). Petr Tesarik posted a number of clean up patches to the vdso-layout linker script in an effort to fix the "pretty haphazard" way the sections were being handled.

IDE. Bartlomiej Zolnierkiewicz posted a second round of IDE updates for the 2.6.31 merge window. These included the contentious HPA (Host Protected Area) patches that Linus had been unhappy to take late in 30-rc8.

SCSI. James Bottomley posted a first round of SCSI updates for the 2.6.31 merge window (incorrectly refering to "2.6.30" in the subject line). These include a "large slew of driver updates and miscellaneous changes". Amongst the changes is an expansion into bits of the net tree courtesy of the FCoE (Fibre Channel over Ethernet) patches, for which apparently David Miller has given all pieces his ACK.

IEEE1394 (Firewire). Stefan Richter posted a teaser email concerning linux1394-2.6.git. Apparently there are two pending batches of updates, that include a number of simplifications to the sysfs ABI which should make the corresponding udev rulesets in distributions simpler - look out for that, distro maintainers, you'll probably need to clean up your udev rules.

Power Management. Rafael J. Wysocki posted a series of Power Management updates for 2.6.31. These include more 32/64 bit x86 unification, re-arrangements of the code under kernel/power, and bug fixes.

Documentation. Jonathan Corbet posted a series of documentation updates.

Architectural merge requests. Requests came in for merging the latest fixes for AVR32, Blackfin (separately, ongoing work continues to migrate Blackfin to asm-generic), Microblaze (implementing MMU support), and s390.

Of the things that didn't make 2.6.31, Izik Eidus asked Hugh Dickins about the best way forward for KSM. Quoting, 'Because we are skipping 2.6.31, It is ok to you to tell me something like: "Shut up and let me see what I can get with this madvise"'.

Shipping userspace (sub)packages as part of the kernel. Linus Torvalds, Alan Cox, and Al Viro engaged in a discussion surrounding the recent Performance Counters patches, which include a "perf" userspace utility that needs to be shipped alongside the kernel. Al Viro was concerned about ABI breakage, especially if we were to now have a utility that must be kept in perfect sync with the running kernel. Linus suggested the situation was not that bad since the "perf" tool is benchmarking specific (and so not required for booting or similar - though he appreciated the generalization of the dialogue into other scenarios) and the original authors have already agreed not to break the ABI between their kernelspace and userspace "perf" components. The dialogue brought up the old issue of the kernel generally not shipping userspace tools, in some kind of aversion to dealing with these issues.

Large kernel images. Michael Tokarev noted how LILO loads initrd images below 15MB by default. This is normally fine, but on some kernel configurations, the kernel image can encroach upon the initrd and cause corruption - for which LILO eventually gained a "large-memory" option. As Michael notes, most users are likely running GRUB these days with vendor kernels and so probably won't hit this. It's this author's opinion that some of this may have also been caused as a side affect by recent boot image changes in 2.6.30 from Peter Anvin's patches, although I don't know this to be the case. On a related note, Ingo's latest x86-fixes-for-linus tree includes a "handle initrd that extends into unusable memory" patch from Yinghai Lu.

Matching disks to boot order. Harvey Chapman brought up the old issue of matching a disk to the BIOS boot order. This is something Linux has struggled to do historically since the bootloader would have to notify the kernel of the device from which it was booted, and so forth. But recent systems fortunately include support for EDD 3.0, as Alan Cox pointed out in his reply, which does allow the Operating System to find out from which disk it was booted.

Finally today, Robert P. J. Day wondered what the "right time" was to run his "super-duper, kernel cleanup scripts". He is considering waiting until rc1 has been released and the merge craziness calms down a little.

In today's announcements: SystemTap release 0.9.8 was announced by Josh Stone. The latest version includes module signing support, debuginfo package suggestions, system call dwarfless probing, new tapset functions, support for 2.6.30 kernels, and many bug fixes and miscellaneous speed improvements. Thomas Gleixner posted version 2.6.29.4-rt18 of the Real Time kernel patchset, including my hwlat hardware latency detector patches and a futex bug fix.

Greg Kroah-Hartman announced the release of Linux 2.6.27.25, which he strongly encourages all users of the 2.6.27 kernel to upgrade to. There are many fixes in this release, including at least one with security implications.

The latest kernel release is 2.6.30, which was released by Linus last Tuesday.

Stephen Rothwell posted a linux-next tree for June 12. Since Thursday, he added a new rr-latest-cpumask tree (which Rusty Russell has posted a number of updates against - expect to see all arches migrate to set_cpu_online, etc. rather than touching bits in the legacy masks, and variable-length cpumasks in struct mm also), dropped the kvm tree (due to too many merge window conflicts), and the tree continues to fail to build in an allyesconfig powerpc build configuration. There were a number of other issues, which might be best summed up as Stephen put it, "Isn't the merge window fun". The tree is now back up to a total of 130 sub-trees, due to Rusty's new one.

Andrew Morton posted an mm-of-the-moment for 2009-06-12-12-20. He is still actively working on removing patches from the tree and merging them.