2.6.32 merge window, part 1
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
- 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
- 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
- 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
- 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
- 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
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).
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
- 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
- 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.
to post comments)