|
|
Subscribe / Log in / New account

4.9 Merge window part 1

By Jonathan Corbet
October 5, 2016
The 4.9 merge window opened on October 2 with the final release of the 4.8 kernel. As of this writing, some 2,127 patches have been merged for this development cycle — a bare beginning. Trees pulled thus far include ARM64, security, power management, read-copy-update, locking, perf, scheduling, documentation, timers, interrupts, USB, and various x86 trees, among others. Some of the more interesting user-visible changes merged so far include:

  • The virtually mapped kernel stacks work has been merged. This changes how kernel stacks are implemented on the x86 architecture, allowing the kernel to detect stack overflows and respond accordingly. With luck, this work will cut off one avenue for the exploitation of kernel bugs.

  • Some ARM64 systems, it seems, have different memory cache-line sizes on different CPUs; this can confuse software that is trying to do explicit cache management. Such systems will now report the smallest size available on any processor.

  • The perf tool can break a function down to "basic blocks" and track events on each; see this changelog for details.

  • There is a new set of files under /sys/kernel/irq describing the interrupt lines on the system. They are a replacement for /proc/interrupts that is meant to be easier for programs to parse.

  • SELinux now has support for overlay filesystems, a useful feature for container deployments.

  • New hardware support includes:

    • Systems and processors: systems based on the Mellanox Technologies platform.

    • Miscellaneous: ACPI WDAT watchdog timers, J-Core AIC interrupt controllers, Qualcomm MDM9615 global clock controllers, ISSI IS31FL319x I2C LED controllers, Qualcomm PM8058 PMIC LED controllers, Mellanox system LEDs, APM X-Gene SoC hardware monitoring sensors, Allwinner A31/A31s clock-control units, UniPhier clock controllers, Linear Technology LTC3676 8-output regulators, Broadcom SPI flash and MSPI controllers, and Cavium ThunderX SPI controllers.

    • USB: SMSC USB4604 high-speed hub controllers, Broadcom Northstar USB 3.0 PHYs, Rockchip/Innosilicon USB2.0 PHYs, and Rockchip PCIe and TYPEC PHYs.

Changes visible to kernel developers include:

  • The "local/global lock" (lglock) implementation, added for 2.6.36, has been removed from the kernel since there are no more users. The ticket spinlock implementation, unused for a while now, is also gone.

  • Software interrupt handling has been changed so that, if the ksoftirqd kernel thread is running (or requested to run), software interrupts will not be handled in process context. See this article for the story behind this change.

  • The new CONFIG_DEBUG_TEST_DRIVER_REMOVE configuration option will cause the kernel to do a probe/remove/probe cycle on device initialization. This is an easy way to ensure that the driver's remove logic is automatically tested.

  • There is a new registration API for hardware monitoring (hwmon) devices; see this commit for some documentation.

  • The kernel documentation transition continues. With 4.9, PDF output for reStructuredText documents will be properly supported. There are the bare beginnings of sub-documents for kernel development tools and the driver programming API, and some of the groundwork has been done for a development-process document.

The most likely release date for the 4.9 kernel is December 4, though, if an extra -rc cycle is needed (as happened with 4.8), that could be delayed to the 11th. But first we have to get through the rest of the merge window, during which quite a bit more code should find its way into the mainline; as usual, LWN will publish updates in the following weeks.

Index entries for this article
KernelReleases/4.9


to post comments

4.9 Merge window part 1

Posted Oct 6, 2016 3:18 UTC (Thu) by josh (subscriber, #17465) [Link]

> The virtually mapped kernel stacks work has been merged. This changes how kernel stacks are implemented on the x86 architecture, allowing the kernel to detect stack overflows and respond accordingly. With luck, this work will cut off one avenue for the exploitation of kernel bugs.

This work also means that kernel stacks can start out smaller, and don't require contiguous allocation of multiple pages. That improves the performance of fork().

4.9 Merge window part 1

Posted Oct 6, 2016 3:56 UTC (Thu) by jcm (subscriber, #18262) [Link] (1 responses)

Note - no ARM server has multiple different cache line sizes on different cores. Such things would be swiftly caught well before anything was released. SBSA requires full symmetry between cores for exactly this (and related) reason. But what mobile folks decide to do is up to them.

4.9 Merge window part 1

Posted Oct 6, 2016 12:20 UTC (Thu) by pm215 (subscriber, #98099) [Link]

It's an SoC erratum -- I don't think server SoCs are any more immune to errata than mobile SoCs. No mobile system should have different cache line sizes on different cores either...

4.9 Merge window part 1

Posted Oct 6, 2016 11:12 UTC (Thu) by sourcejedi (guest, #45153) [Link] (1 responses)

The BIG.little cache issue (via @mjg59, describing it as "terrifying"): http://www.mono-project.com/news/2016/09/12/arm64-icache/

4.9 Merge window part 1

Posted Oct 6, 2016 12:22 UTC (Thu) by pm215 (subscriber, #98099) [Link]

The summary to that article is wrong, though: it's not a problem with the ISA, it's just an erratum in one particular SoC, and now we have a workaround for it in the kernel (not an uncommon way to handle errata).

Documentation output

Posted Oct 6, 2016 17:49 UTC (Thu) by yroyon (guest, #99220) [Link]

These documentation pages look fantastic.

Will there be a canonical place that hosts them?
What about versioning?


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