|
|
Subscribe / Log in / New account

The 3.12 merge window opens

By Jonathan Corbet
September 5, 2013
The 3.12 merge window started right on time on September 3; by the time this article was written, over 3,500 patches had been pulled into the mainline. There is, once again, a great deal of internal cleanup work going on that does not look impressive in a feature list, but the benefits of that work will be felt well into the future. In particular, some of the performance work that has been done this time around should speed up Linux considerably in a number of settings.

User-visible features merged for 3.12 so far include:

  • The Lustre filesystem, added in 3.11, is now enabled in the build system. Quite a bit of cleanup work for Lustre has been merged for 3.12.

  • The long-deprecated /proc/acpi/event interface has been removed. If anybody actually needed this file, they should raise a fuss during the 3.12 development cycle.

  • The pstore mechanism (which stores crash information in a persistent storage location) is now able to store compressed data.

  • The full-system idle detection patch set has been pulled. This work enables the kernel to detect when the entire system is idle and turn off the clock tick, thus improving the performance when the full dynamic tick feature is used.

  • The "paravirtualized ticket spinlocks" mechanism allows for more efficient locking in virtualized guests. In short, if a spinlock is unavailable for anything more than a brief period, the lock code will stop spinning and call into the hypervisor to simply wait until the lock becomes available again.

  • New hardware support includes:

    • Audio: Wolfson Microelectronics WM8997 codecs, Atmel AT91ASM9x5 boards with WM8904 codecs, TI PCM1792A and PCM1681 codecs, Asahi Kasei Microdevices AK4554 audio chips, Renesas R-Car SoC audio controllers, and Freescale S/PDIF and SSI AC'97 controllers.

    • Block: ATTO Technology ExpressSAS RAID adapters. The ATA layer has also gained the ability to take advantage of newer solid-state drives that support the queued version of the TRIM command, removing much of the cost of TRIM operations.

    • Hardware monitoring and related: Dialog Semiconductor DA9063 regulators, Marvell 88PM800 power regulators, Freescale PFUZE100 PMIC-based regulators, and Measurement Specialties HTU21D humidity/temperature sensors.

    • Miscellaneous: Humusoft MF624 DAQ PCI cards, Xillybus generic FPGA interfaces, Digi EPCA, Neo and Classic serial ports, ST ASC serial ports, Nuvoton NAU7802 analog-to-digital converters, TI TWL6030 analog-to-digital converters, TI Palmas series pin controllers, Avago APDS9300 ambient light sensors, and Bosch BMA180 triaxial acceleration sensors.

    • Networking: Realtek RTL8188EU wireless interfaces.

    • Serial peripheral interface: Freescale DSPI controllers, Energy Micro EFM32 SoC-based SPI controllers, Blackfin v3 SPI controllers, and TI DRA7xxx QSPI controllers.

    • USB: Faraday FOTG210 OTG controllers and GCT GDM724x LTE chip-based USB modem devices.

Changes visible to kernel developers include:

  • There is a new reference count called a "lockref", defined in <linux/lockref.h>. It combines a spinlock and a reference count in a way that allows changes to the reference count to be made without having to take the lock. See this article for details on how lockrefs work.

  • The S390 architecture has been converted to the generic interrupt-handling mechanism. Since S390 was the last holdout, this mechanism will become mandatory and the associated CONFIG_GENERIC_HARDIRQS configuration option will go away.

  • There is a new mechanism for debugging kobject lifecycle issues; it works by delaying the calling of the release() function when the reference count drops to zero. Most of the time, release() is called while the driver is shutting down the associated device, but there is no guarantee of that. Turning on CONFIG_DEBUG_KOBJECT_RELEASE will help find cases where the driver is not prepared for a delayed release() call.

  • The PTR_RET() function has been renamed PTR_ERR_OR_ZERO(); all internal users have been changed.

Your editor predicts that the merge window will close on September 15, just before the start of LinuxCon and the Linux Plumbers Conference.

Index entries for this article
KernelReleases/3.12


to post comments

The 3.12 merge window opens

Posted Sep 7, 2013 8:14 UTC (Sat) by chantecode (subscriber, #54535) [Link] (1 responses)

May I suggest a correction:

"This work enables the kernel to detect when the entire system is idle and turn off the clock tick, thus improving the performance when the full dynamic tick feature is used. "

The goal of this feature is actually not to improve the performances but to improve powersaving. The cpu that handles timekeeping wasn't allowed to shutdown its tick until now. With this patch now it can.

-Frederic.

The 3.12 merge window opens

Posted Sep 10, 2013 2:25 UTC (Tue) by jzbiciak (guest, #5246) [Link]

I guess this is a hair-split: If I recall the original article correctly, this work reduces the performance impact of the full-system-idle detection step, so, in that sense improves performance. As a result, because it's cheap enough, it becomes reasonable to detect when the whole system is idle so that that last processor can shut its tick off.

If I understood correctly, without this optimization, you would either need to keep the last processor on, or pay a performance penalty.

Or am I oversimplifying / misunderstanding?


Copyright © 2013, 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