|Did you know...?|
LWN.net is a subscriber-supported publication; we rely on subscribers
to keep the entire operation going. Please help out by buying a subscription and keeping LWN on the
The merge window for the 3.14 kernel opened on January 20. As of this
writing, just over 3300 non-merge changesets have been pulled into the
mainline for this
release, including some significant new functionality. The most
significant user-visible changes pulled so far include:
- The user-space lockdep patch set
has been merged. This feature makes the kernel's locking debugging
capabilities available to user-space applications.
- After years of development, the deadline
scheduling class has finally been merged. This class allows
processes to declare an amount of work needing to be done and a
deadline by which it must happen; with care, it can guarantee that all
processes will meet their deadlines. See this in-progress document for more
information about the current status of the deadline scheduler.
- The m68k architecture has gained support for the kexec()
- The kexec() system call now works on EFI BIOS systems.
- Xen is no longer supported on the ia64 architecture.
- The arm64 architecture has gained support for jump labels and the CMA memory allocator.
- The perf events subsystem has gained support for Intel "RAPL" energy
consumption counters. The user-space perf tool has also gained a
long list of new features and enhancements; see Ingo
Molnar's pull request for a detailed list.
- The kernel address space layout
randomization patches have been merged. Depending on who you
believe, this feature may make the kernel more resistant to certain
types of attacks. Note that, as of this writing, enabling this
feature breaks hibernation and perf events.
- New hardware support includes:
- Processors and systems:
Intel Clovertrail and Merrifield MID platforms.
Tegra boards with MAX98090 codecs,
Broadcom BCM2835 SoC I2S/PCM modules,
Freescale SoC digital audio interfaces,
Freescale enhanced serial audio interface controllers, and
Analog Devices AXI-I2S and AXI-SPDIF softcore peripherals.
- GPIO / pinmux:
MOXA ART GPIO controllers,
Xtensa GPIO32 GPIO controllers,
SMSC SCH311x SuperI/O GPIO controllers,
Freescale i.MX25 pin controllers,
Qualcomm TLMM pin controllers,
Qualcomm 8x74 pin controllers,
NVIDIA Tegra124 pin controllers,
Broadcom Capri pin controllers, and
TI/National Semiconductor LP3943 GPIO expanders.
IBM Generic Work Queue Engine accelerators,
Realtek RTS5208/5288 PCI-E card readers,
Freescale MPL3115A2 pressure sensors,
Freescale i.MX6 HDMI transmitters,
DHT11 and DHT22 temperature/humidity sensors,
HID 3D inclinometers,
Capella Microsystem CM32181 ambient light sensors,
Humusoft MF634 and MF624 data acquisition cards,
Renesas RIIC I2C interfaces,
TI/National Semiconductor LP3943 PWM controllers,
ams AS3722 power-off units, and
Maxim MAX14577 MUIC battery chargers.
Maxim MAX14577 micro USB interface controllers,
OMAP USB OTG controllers,
Tahvo USB transceivers,
Ingenic JZ4740 USB device controllers,
Broadcom Kona USB2 PHYs,
Aeroflex Gaisler GRUSBDC USB peripheral controllers,
MOXA UPort serial hubs, and
RobotFuzz Open Source InterFace USB to I2C controllers.
Changes visible to kernel developers include:
- The new smp_load_acquire() and smp_store_release()
memory barrier operations have been added; see this article for information on when they
are needed and how they can be used.
- The kernel can be built with the -fstack-protector-strong
compiler option, available in GCC starting with version 4.9. This
option allows more functions within the kernel to have stack overrun
protection applied while still keeping the overhead to (hopefully)
- preempt_enable_no_resched() is no longer available to modules
which, according to the scheduler developers, should not "be
creative with preemption."
- The internals of the sysfs virtual filesystem are being massively
reworked to create a new "kernfs" that can serve as the base for a
number of such filesystems. The first target is the cgroup control
filesystem, but others may follow. This work is incomplete in 3.14,
but has still resulted in a lot of internal code changes.
- The new documentation file Documentation/driver-model/design-patterns.txt
tries to formalize some of the design patterns seen in driver code.
It is just getting started; contributions would undoubtedly be
- There is a new "componentized subsystems" infrastructure for
management of complex devices made
up of a number of smaller, interacting devices; see this
commit for details.
- The Android ION memory allocator has
been merged into the staging tree. A long list of improvements,
including changes to make ION use the dma-buf interface and the CMA
allocator, has been merged as well.
If the normal rules apply, the 3.14 merge window can be expected to remain
open until around February 2. At this point, a number of large trees
— networking, for example — have not yet been pulled, so one can expect
quite a bit more in the way of changes between now and when the window
closes. As always, next week's Kernel Page will continue to follow what
gets into the mainline for this development cycle.
to post comments)