2.6.31 merge window, week 1
The process of merging patches for 2.6.31 has begun. As of this writing,
6220 non-merge changesets have been added to the mainline. Some
of the more
interesting, user-visible change include:
- Reads from /dev/zero can now be interrupted by signals. In
theory, no application should be adversely affected by this change,
but is still a true user-space ABI change.
- The x86 architecture can now handle 46-bit physical addresses,
allowing the use of up to 64TB of physical memory.
- A number of Xen features meant to support Dom0 functionality
(the /dev/xen/evtchn event channel code ant
/sys/hypervisor, for example) have been merged. The Dom0
code itself remains outside, though.
- Support for the rt_tgsigqueueinfo() system call, which sends
a signal (with ancillary information) to a thread group, has been added.
- A number of ftrace features have been added. These include a function
profiler, a number of event tracer improvements, some new tracepoints,
and a new docbook document describing static tracepoints in the kernel.
- The USB TTY port driver has been reworked in ways which bring it into
closer alignment with POSIX behavior and that of other types of serial
ports. Alan Cox fears that some applications which depended on the
old behavior might break - though others, which had problems with USB
serial ports, should now begin to work.
- There is a new sysctl knob
(/proc/sys/kernel/modules_disabled); writing "1" to that file
will cause module loading to be forevermore disallowed.
- The SMACK security module now has a comprehensive logging facility.
- The splice() system call now works when both the input and
output files are pipes.
- The storage topology patches (covered briefly in April)
have been merged. This code allows the kernel to export much more
information about how storage devices are structured, enabling support
for upcoming hardware.
- The performance counters patch set (last covered in December)
have been merged. This code provides a new API for the use of
hardware performance counters; it edges out perfmon and a number of
other implementations in this area.
- The character devices in
user space (CUSE) patch set has been merged.
arch-imx has been removed from the ARM architecture
as it has been
superseded by the MXC architecture.
The s390 architecture has added support for dynamic ftrace, as well as the
system call and function graph tracers.
The packet_mmap changes for the transmission side of packet sockets was
merged, which allows for
more efficient, nearly zero-copy, packet sends from user space.
The controller area network (CAN) subsystem has added a network device
driver interface and a netlink interface. New CAN device drivers have also
merged using the driver interface (see below).
Support for IEEE 802.15.4 sockets has been added to the network subsystem.
This is for low-cost, low-speed "personal area networks".
Passive OS fingerprinting has been added to
the netfilter code.
The FAT filesystem has added an "errors" mount option which governs its
behavior in the presence of critical errors.
The s390 architecture has added support for hibernation.
Support has been added for USB 3.0/xHCI host controllers, though none are yet
Kernel modesetting for the radeon driver, supporting R1XX, R2XX, R3XX,
R4XX, R5XX, and radeon up to X1950 hardware, has been merged.
- There is the usual pile of new drivers:
- Architectures/processors/systems: SuperH SH7724 processors,
Hitachi SH7724 (SolutionEngine7724) boards,
memory error detection and correction (EDAC) support for AMD K8,
F10h, and F11h processors, ARM PCM043 boards, ARM Atmark
Armadillo 500 boards, OMAP3 Zoom2 boards, OMAP4430 SDP boards
(including SMP support), ARM
MX35PDK boards, Marvell 88F6281 GTW GE boards,Samsung S3C6400 SoCs,
ARMv6/v7 big-endian, Stargate 2 boards, Freescale STMP platforms,
ST-Ericsson U300 series platforms, PowerPC MPC8569MDS boards, PowerPC
- Miscellaneous: Timberdale FPGA UARTs, 64-bit VIA
hardware random number generators, Mediama RMTx add-on board for
ATNGW100, Wacom Graphire Bluetooth tablet, CB710/720 memory card
readers, Maxim 1586 voltage regulators, TI TMP401 temperature sensor,
Intel Langwell USB device controllers, Intel Langwell USB On-the-go
controllers, TI VLYNQ bus, ST Microelectronics DDC I2C interface.
- Networking: Broadcom NetXtremeII gigabit Ethernet cards
(offload features in particular), Intellon PLC (Powerline
communications) USB adapters, Marvell SD8688 wireless chips, Ralink
rt2800 wireless USB chipsets, TI wl1251/wl1271 wireless chipsets, TI
DaVinci Ethernet MACs, Phillips SJA1000 CAN
controllers, Kvaser PCIcanx and Kvaser PCIcan PCI CAN Cards, Intel
wireless Multicomm 3200 devices, Micrel KS8842 ethernet switches.
- Sound: Wolfson Micro WM8988, WM8940, WM9081,
and WM8960 codecs,
Digigram LX6464ES boards,
ESI Maya44 boards,
several Creative Sound Blaster X-FI devices based on the 20K1 and
20K2 chipsets, a USB Audio gadget driver.
- Graphics: AMD r600 chipset, Intel IGDNG chipset.
- Video: DVB-S/S2/DSS Multistandard Professional/Broadcast
demodulators, STV6110/(A) based tuners, ISL6423 SEC controllers, TI
THS7303 video amplifiers, Analog Devices I2C bus based ADV7343
Changes visible to kernel developers include:
- There is a new atomic function:
int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock);
This function will decrement cnt and, if cnt reaches
zero, it will acquire the given lock.
- A number of block layer request
queue API changes have been merged; all drivers must now dequeue
requests before executing them. Beyond that, the merging of the
storage topology patches (in preparation for 4K-sector disks) mean
that block drivers must now distinguish between the physical block
size on the disk and the logical block size used by the kernel.
- The 32-bit x86 architecture now supports the atomic64_t
- The kernel memory leak
detector has been merged at last.
- The fsnotify backend has been merged. This code provides a new,
common implementation for dnotify and inotify; it also will serve as
the base for the "fanotify" code (formerly TALPA), which has not been
merged as of this writing.
- Btrfs has seen a number of enhancements, including one which involves
an on-disk format change. Existing btrfs filesystems will work with
the new code, but, once mounted on a 2.6.31 system, those filesystems
will no longer work with older kernels.
- Tree read-copy update (RCU) is now the
default, though Classic RCU is still available.
- Changes to the include/asm-generic header files were
merged. These changes are meant to serve as a model for or be used
directly by new architectures
rather than copying from an existing architecture. The S+core (score)
depends on these changes and the MicroBlaze architecture will be using them
to clean up its ABI.
Some rather large cleanups for XFS were merged, including switching to the
generic POSIX ACL code and removal of the xfs_qmops quota ops
All network drivers have converted to the new net_device_ops API and the
old API available with COMPAT_NET_DEV_OPS has been removed.
The rfkill core has been rewritten for devices that implement a way to stop
all radio transmission from the device (in response to a laptop key for
turning off wireless, for example). Various drivers have also been updated
to use the new rfkill API.
Debugfs has had all of its references throughout the tree turned into
/sys/kernel/debug/ in both documentation and code. In addition,
LWN's updated guide to debugfs was added to
the Documentation directory.
Unicode handling in the kernel has been updated, with functions like
utf_mbstowcs() being renamed to utf8s_to_utf16s() for
The kmemcheck kernel memory checker to detect the use of uninitialized
memory has been merged.
The TTM GPU memory manager (covered a bit
over a year ago) has been merged.
Linus started merging patches on June 10, suggesting that the merge window
will remain open until sometime around June 24. That puts us roughly half
way through the merge window, in terms of time. The merge rate will likely
slow down some for the remainder of the merge window, but there are,
undoubtedly, more interesting changes to come. Stay tuned.
to post comments)