|
|
Subscribe / Log in / New account

The 4.6 merge window opens

By Jonathan Corbet
March 16, 2016
As of this writing, the 4.6 merge window has gotten off to a relatively slow start, with a mere 0x3ff (1023) non-merge changesets pulled into the mainline so far. Linus may be proceeding slowly because the changes that have been merged are concentrated on tricky, low-level code, such as the x86 system-call machinery, CPU hotplugging, and the floating-point unit management code. It may well make sense to let any problems in this area make themselves known before further muddying the water.

That said, we have already seen some interesting new features merged, including:

  • The code implementing shared futexes in anonymous memory has seen some serious optimization, eliminating a bottleneck that made these futexes significantly slower than the private variety.

  • The perf subsystem has seen the usual set of improvements; see the pull request for details.

  • Address-space layout randomization, which aims to thwart exploits by making things harder to find in a process's address space, has been fully extended to 32-bit programs running on 64-bit systems. In particular, the locations for libraries, the vDSO virtual system call area, and areas allocated with mmap() are now randomized.

  • The post-init read-only memory patches have been merged, hopefully hardening the kernel against certain data-overwrite exploits.

  • The new irqaffinity= command-line option allows an administrator to limit the CPUs to which interrupts will be directed; this feature is expected to be useful for CPU-isolation users who want to ensure that no interrupts will be delivered to the isolated processors.

  • New hardware support includes:

    • Miscellaneous: Broadcom BCM6345 interrupt controllers, Alpine MSIX interrupt controllers, Analog Devices AXI SPI Engine controllers, Active-Semi ACT8945A voltage regulators, Hisilicon HI655X PMIC regulators, Maxim 77620/MAX20024 voltage regulators, Linear Technology LTC2990 I2C system monitors, ZyXEL NSA320 fan-speed and temperature sensors, and ISSI IS31FL32XX I2C LED controllers.

    • Pin control: ST Microelectronics STM32F429 pin controllers, Microchip PIC32 pin controllers, Mediatek MT2701 pin controllers, Qualcomm IPQ4019 pin controllers, and Mediatek MT7623 pin controllers.

    • Realtime clocks: Epson RX-6110 realtime clocks, Alphascale asm9260 realtime clocks, and Microchip PIC32 realtime clocks.

Changes visible to kernel developers include:

  • The project to rework the CPU hotplug mechanism stalled for a couple of years, but it is now back, partly as a result of the Linux Foundation's funding of the realtime project. This work replaces a tangled set of notifiers with a more straightforward state machine that, one hopes, is easier to follow and make work correctly. The initial state machine has been merged for 4.6; see this pull request text for a description of what has been merged so far.

  • The low-level resource-management code understands a new resource type: IORESOURCE_SYSRAM, meant to indicate system RAM. This makes it easier for kernel code to distinguish system memory from other resource types without having to use strcmp() on the resource name.

  • The new function memcpy_mcsafe() will copy a block of memory; unlike memcpy(), it will not crash the system if the copy causes a machine-check error. It is intended for use with persistent memory, where the possibility of memory errors is higher and the system should recover when they happen.

  • Simple wait queues have been merged, making life easier for code that just needs to wait without the fancy features that ordinary wait queues have accumulated over the years.

  • The new function get_device_system_crosststamp() allows the simultaneous acquisition of timestamps from the core system clock and a peripheral device. Its purpose is to enable tight synchronization of events across a system; see this commit changelog for more information. In 4.6, the e1000e network driver will use this capability.

This merge window is likely to remain open until March 27, with the most likely date for the 4.6 release being May 15.

Index entries for this article
KernelReleases/4.6


to post comments


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