User: Password:
Subscribe / Log in / New account

3.14 Merge window part 1

Did you know...? 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 net.

By Jonathan Corbet
January 22, 2014
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() system call.

  • 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.

    • Audio: 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.

    • Miscellaneous: 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.

    • USB: 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) reasonable levels.

  • 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 welcome.

  • 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.

(Log in to post comments)

The architecture of the future

Posted Jan 23, 2014 7:34 UTC (Thu) by epa (subscriber, #39769) [Link]

So, ia64 is on the way out, but m68k is still gaining features!

Copyright © 2014, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds