3.9 Merge window, second episode
last week's summary
As of this writing, just over 8,000 non-merge changesets have been pulled
into the mainline for the 3.9 development cycle — 7,600 since
. Quite a few new features
of interest have been merged for the 3.9 kernel; the most significant of
those are listed below.
But first, a warning for development kernel testers: there are
reports of ext4 filesystem corruption with current mainline kernels. The
problem appears to have been identified and fixed, but it will
remain as a permanent hazard for anybody running bisections over the
3.9 merge window. Development kernels have not often lived up to their
fearsome reputation recently, but they can still bite at times.
- The ARM architecture has gained support for the KVM virtualization
mechanism on Cortex-A15 processors. Support for the ARM "power state
coordination interface" has been added so that virtual CPU's can be
"powered up" and down.
- The socket filtering mechanism has a new SO_LOCK_FILTER
option that prevents further changes to the filter. It is intended
for privileged programs that install a filter before running untrusted
- TCP and UDP sockets have a new option, SO_REUSEPORT, that allows
multiple sockets listening for new connections or packets
(respectively) at the same time. See this
commit message for more information.
- The netfilter connection-tracking code now supports "connection
labels," which are bitmasks that can be attached to tracking entries and
tested by netfilter rules.
- The wireless networking subsystem has gained core support for the
detection of radar systems operating on the networking frequencies;
this is a necessary component for dynamic
frequency selection in the 5GHz range.
- VMware's "VM Sockets" subsystem, a mechanism for communication between
virtual machines and a hypervisor, has been merged. Also merged is
the "Virtual Machine Communication Interface" subsystem for high-speed
communication between the host and guests.
- The networking layer has support for the "Multiple VLAN Registration
Protocol" (MVRP), which facilitates communication about registered
virtual networks to switches.
- The block layer's handling of pages under writeback has been changed to address the
performance penalty imposed by the previous "stable pages" work.
- The PowerPC architecture supports a new set of transactional memory
instructions; at this time, only user-space support is provided (the
kernel does not use these instructions). See Documentation/powerpc/transactional_memory.txt
for more information.
- The Xen virtualization subsystem gained support for ACPI-based CPU and
memory hotplugging, though, in both cases, only the "add" operation is
- The ext4 filesystem now supports hole punching in block-mapped files.
- A long list of old network drivers has been deleted; these include the
venerable 3c501, 3c505, and 3c507 drivers, various Intel i825xx
drivers, parallel port-based drivers(!), and many more. It is
expected that these drivers will not be
missed, as many of them did not work all that well in the first
place. As Paul Gortmaker put
it: "You know things are not good when the Kconfig help text suggests
you make a cron job doing a ping every minute." The
long-unused "WAN router" subsystem has also been removed.
- New hardware support includes:
- Systems and processors:
NVIDIA Tegra114 SoCs,
the ARM "dummy virtual machine" (a minimal stub platform for
Prodrive PPA8548 AMC modules, and
Tensilica Diamond 233L Standard core Rev.C processors.
NVIDIA Tegra20 AC97 interfaces.
Renesas R-Car SATA controllers and
Broadcom BCM2835 SD/MMC controllers.
Marvell MMP display controllers,
Samsung LMS501KF03 LCD panels,
Himax HX-8357 LCD panels,
Austrian Microsystems AS3711 backlight controllers,
TI LCDC display controllers, and
NXP Semiconductors TDA998X HDMI encoders.
Steelseries SRW-S1 steering wheel devices.
STMicroelectronics ST33 I2C TPM devices,
STMicroelectronics accelerometers, magnetometers, and gyroscopes,
InvenSense ITG3200 digital 3-axis gyroscopes,
Invensense MPU6050 gyroscope/accelerometer devices,
NVIDIA Tegra20/30 SoC serial controllers,
Comtrol RocketPort EXPRESS/INFINITY serial adapters,
PCI-Express non-transparent bridges,
Maxim MAX77686 and MAX8997 realtime clocks (RTCs),
TI LP8788 RTCs,
TI TPS80031/TPS80032 RTCs,
Epson RX-4581 RTCs,
ST-Ericsson Ux500 watchdogs,
Intel Lynxpoint GPIO controllers,
Atmel Timer Counter pulse-width modulators,
TI/National LP5521 and LP5523/55231 LED controllers,
Intel iSMT SMBus host controllers, and
Broadcom BCM2835 I2C controllers.
8devices USB2CAN interfaces and
Inside Secure microread NFC interfaces.
SMSC USB3503 USB 2.0 hub controllers.
SuperH VEU mem2mem video processors,
TI DM365 VPFE media controllers,
Montage Technology TS2020-based tuners,
Masterkit MA901 USB FM radios,
OmniVision OV9650/OV9652 sensors, and
Samsung S5C73M3 sensors.
- Staging graduations: the
Analog Devices ADXRS450/3 Digital Output Gyroscope SPI driver,
Analog Devices ADIS16400 inertial sensor driver,
Analog Devices ADIS16080/100 yaw rate gyroscope driver,
Kionix KXSD9 accelerometer driver,
TAOS TSL2560, TSL2561, TSL2562 and TSL2563 ambient light sensor
OMAP direct rendering driver have been moved out of the staging
tree and into the mainline kernel.
Changes visible to kernel developers include:
- The netpoll mechanism now supports IPv6, allowing network consoles to
be run over IPv6 networks.
- Most drivers no longer depend on the EXPERIMENTAL
configuration option. So much code needed that option that it is
turned on almost universally, with the result that it does not
actually mean anything. So now it defaults to "yes," and it will soon
be removed entirely.
- The sound layer has a generic parser for Intel high definition audio
(HDA) codecs. Many drivers have been converted to use this parser,
resulting in the removal of a great deal of duplicated code.
- The __get_user_8() function is now available on 32-bit x86
systems; it will fetch a 64-bit quantity from user space.
- The module signing code has a few usability enhancements. The
sign-file utility has new options to specify which hash
algorithm to use or to simply provide the entire signature (which will
have been computed elsewhere). There is also a new
MODULE_SIG_ALL configuration option that controls whether
modules are automatically signed at modules_install time.
- The descriptor-based GPIO patch set
has been merged, with significant changes to how GPIO lines are
handled within the kernel.
- The new file_inode() helper should be used instead of the
traditional file->f_dentry->d_inode pointer chain.
The merge window should stay open through approximately March 5, though,
one assumes, the rate of change will drop off somewhat toward the end.
Next week's edition will summarize the changes that go in for the final
part of the 3.9 merge window.
to post comments)