LWN.net Logo

2.6.32 merge window, part 1

By Jonathan Corbet
September 16, 2009
Linus started taking patches for the 2.6.32 merge window on September 10. Thus begins the process which should lead to a final kernel release around the beginning of December. As of this writing, some 4400 non-merge changes have been merged. The most significant user-visible changes include:

  • The per-BDI write back threads patch has been merged; this should lead to better writeback scalability.

  • The devtmpfs virtual filesystem has been merged. This feature, which is seen by many as the return of the much-disliked devfs subsystem, has been controversial from the beginning, despite the facts that it differs significantly from devfs and some distributions are already making good use of it. So it's not surprising that there was opposition to it being merged. Linus silently accepted it, though, so it will appear in 2.6.32.

  • The keyctl() system call has a new command (KEYCTL_SESSION_TO_PARENT) which causes the calling process's keyring to replace its parent's keyring. This feature is evidently useful for the AFS filesystem; there's also a new set of security module hooks to control this functionality.

  • The sysfs filesystem now understands security labels, allowing for tighter security policy control over access to sysfs files.

  • The S390 architecture is now able to "call home" and send kernel oops reports to the service organization's mothership. This functionality is controlled with the unobviously-named SCLP_ASYNC configuration option.

  • the OProfile code now implements multiplexing of performance counters, allowing for the collection of a larger range of statistics.

  • The SCHED_RESET_ON_FORK scheduler policy flag has been added. This flag (described in this article), causes a child process to not inherit elevated priority or realtime scheduling from its parent.

  • The perf tool has a new trace operation; it generates a simple output stream from a user-specified set of tracepoints.

  • The default value of the child_runs_first scheduler sysctl knob has been changed to "false." This causes the parent process to continue running after a fork() rather than yielding immediately to the child process. See this article for more information on 2.6.32 scheduler changes.

  • There is a new set of scheduler tracepoints which improve visibility into wait, sleep, and I/O wait times. There are also new tracepoints for module loading and reference count events, system call entry and exit, network packet copies to user space, and KVM interrupt and memory-mapped I/O events.

  • A vast amount of work has happened within the wireless networking subsystem; most of it consists of cleanups and improvements which are not immediately visible to the user. Additionally, wireless extensions compatibility has been improved and there is now network namespace support in cfg80211.

  • The SPARC64 architecture now has rudimentary performance counter support.

  • The KVM virtualization subsystem has gained a module called "irqfd"; it allows the host to inject interrupts into guest systems. Along with irqfd comes a new "ioeventfd" feature enabling emulated memory-mapped I/O in guests. KVM also now has support for the "unrestricted guest" mode supported by latter-day Intel VMX-capable processors.

  • The Intel TXT integrity management mechanism is now in the mainline.

  • There is a new "VGA arbitration" module which allows independent applications to function properly with multiple VGA devices wired to the same address space. Control is through /dev/vga_arbiter; see Documentation/vgaarbiter.txt for details.

  • There is the usual pile of new drivers:

    • Audio: Zoom2 system-on-chip boards, Wolfson WM8523, WM8776, WM8974, WM8993 and WM8961 codecs, Freescale IMX SSI devices, Freecale i.MX1x and i.MX2x-based audio DMA controllers, AD1938 and AD1836 sound chips, ADI BF5xx chip audio devices, Openmoko Neo FreeRunner (GTA02) sound devices, DaVinci DM6446 or DM355 EVM audio devices, Amstrad E3 (Delta) videophones, Renesas SH7724 serial audio interfaces, AKM AK4642/AK4643 audio devices, Simtec TLV320AIC23 audio devices, Conexant CX20582 codecs, and Cirrus Logic CS4206 codecs.

    • Boards and processors- Atmel AT91sam9g45 and AT91sam9g10 processors, Eukrea CPUIMX27, MBIMX27, CPUAT91, CPU9260, and CPU9G20 processors, Broadcom BCMRing system-on-chip processors, Nuvoton NUC900 and NUCP950 CPUs, Marvell OpenRD Base boards, Freescale i.MX25 processors, Motorola Zn5 GSM phones, phyCARD-s (aka pca100) platforms, Airgoo Home Media Terminal devices, Samsung S5PC1XX-based systems, LaCie 2Big Network NAS systems, ST Ericsson Nomadic 8815-based systems, Freescale MPC837x RDB/WLAN boards, Freescale P2020RDB reference boards, and AppliedMicro PPC460SX Eiger evaluation boards.

    • Block: RDC PATA controllers, PMC SIERRA Linux MaxRAID adapters, and a (staging) driver called "cowloop", described as "Cowloop is a "copy-on-write" pseudo block driver. It can be stacked on top of a "real" block driver, and catches all write operations on their way from the file systems layer above to the real driver below, effectively shielding the lower driver from those write accesses. The requests are then diverted to an ordinary file, located somewhere else (configurable)."

    • Networking: Broadcom BCM8727, BCM50610M and AC131 PHY devices, Infineon ISAC/HSCX, ISACX, IPAC and IPACX ISDN chipsets, AVM FRITZ!CARD ISDN adapters, Traverse Technologies NETJet PCI ISDN cards, Winbond W6692 based ISDN cards, Sedlbauer Speedfax+ ISDN cards, Atheros AR9287 and AR9271 chipsets, TI wl1271 chipsets, Xilinx 10/100 Ethernet Lite devices, Marvell 88W8688 Bluetooth interfaces, Marvell SD8688 Bluetooth-over-SDIO interfaces, Ralink RT3090-based wireless adapters (staging), and Realtek 8192 PCI devices (staging).

    • Video4Linux: Zarlink ZL10039 silicon tuners.

    • Miscellaneous: Marvell CESA cryptographic engines, EP93xx pulse-width modulators, Samsung S3C24XX or S3C64XX onboard ADCs, Twinhan USB 6253:0100 remote controls, Blackfin rotary input devices, Sentelic Finger Sensing Pad devices, TI TWL4030/TWL5030/TPS659x0 keypad devices, Quatech USB2.0 to serial adaptors (staging), the Android MSM shared memory driver (staging), HTC Dream QDSP chips (staging), HTC Dream camera devices (staging), VME busses (staging), Microsoft's Hyper-V virtualization drivers (staging), Discretix security processor devices (staging), ST Microelectronics LIS3L02DQ accelerometers (staging), TAOS TSL2561 light-to-digital converters (staging), Kionix KXSD9 accelerometers (staging), MAXIM max1363 ADC devices (staging), and VTI SCA3000 series accelerometers (staging).

Changes visible to kernel developers include:

  • There is a new check_acl() operation added to struct inode_operations. It's part of a push by Linus to move more permissions testing logic into the VFS core and reduce locking in the process.

  • There is a new kernel_module_request() hook in the security module API; it allows security modules to decide whether to allow request_module() calls to succeed. There is also a new set of hooks for the TUN driver.

  • Spinlocks can be built as inline operations for architectures where that performs better.

  • The "classic read-copy-update" and "preempt RCU" implementations have been removed in favor of "tree RCU" and "bloatwatch RCU".

  • The low-level interrupt handling code has gained support for interrupt controllers accessed by way of slow (I2C, say) busses. Among other things, that leads to the addition of the IRQF_ONESHOT flag, which causes an interrupt with a threaded handler to remain masked in the time between the execution of the hard and threaded handlers.

  • The tracing ring buffer is now entirely lockless on the writer's side. See this article for details.

  • As described briefly in this article, the network driver API has changed. The return type for ndo_start_xmit() is now netdev_tx_t, an enum value. For most drivers, simply changing the declared return type for that function will be sufficient.

  • The blk-iopoll block-layer interrupt mitigation code has been merged.

  • Configuring the kernel with "make localmodconfig" will create a configuration pared down to the modules currently loaded in the running kernel. "make localyesconfig" builds the modules into the kernel instead.

  • The new power management core has been merged.

The merge window should stay open for at least another week; it is not clear how LinuxCon and the Linux Plumbers Conference might affect the schedule. Next week's edition will contain an update on changes merged after the publication of this page.


(Log in to post comments)

2.6.32 merge window, part 1

Posted Sep 17, 2009 10:45 UTC (Thu) by broonie (subscriber, #7078) [Link]

A couple of minor corrections: the audio device section should say Wolfson rather than Wolfram and the AK4642/AK4643 CODECs are from AKM (Asahi Kasei Microdevices) rather than Renesas.

Fixed

Posted Sep 17, 2009 13:00 UTC (Thu) by corbet (editor, #1) [Link]

Wow, somebody actually reads those lists!

Silly mistakes fixed, thanks.

Fixed

Posted Sep 17, 2009 13:42 UTC (Thu) by nevets (subscriber, #11875) [Link]


Wow, somebody actually reads those lists!

Of course, but only those that actually work on the particular code. That way they can say "oh look, my work made it to LWN!" ;-)

Fixed

Posted Sep 17, 2009 16:44 UTC (Thu) by nix (subscriber, #2304) [Link]

It's also read by those rare unfortunates who have hardware too new/obscure to be supported yet. 'Ooh, my Camelot crystal ball is supported now!'

Fixed

Posted Sep 18, 2009 9:07 UTC (Fri) by broonie (subscriber, #7078) [Link]

Which also covers a pretty good proportion of those working on the drivers - if a board has one shiny new chip on it it's probably got a bunch of others too.

2.6.32 merge window, part 1

Posted Sep 17, 2009 20:02 UTC (Thu) by yokem_55 (subscriber, #10498) [Link]

Is squashfs-lzma anywhere in sight? The LZMA library has been in there for a couple of releases, but the Squashfs integration hasn't been updated for several releases now. It would be nice to have this along with union mounts sometime soon....

2.6.32 merge window, part 1

Posted Sep 19, 2009 7:11 UTC (Sat) by rvfh (subscriber, #31018) [Link]

does not this cowloop stuff act as a union fs in effect?

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds