|
|
Subscribe / Log in / New account

4.8 merge window part 1

By Jonathan Corbet
July 27, 2016
As of this writing, Linus has pulled 3,156 non-merge changesets into the mainline repository for the 4.8 development cycle. Based on the contents of linux-next, 4.8 is expected to be a relatively busy cycle, so it seems clear that the merging process has just begun. Even so, a number of interesting features and changes have made their way into the mainline. Some of the more prominent user-visible changes are:

  • The Storage, Filesystem, and Memory-Management Summit held in April included an extensive debate over which of two transparent huge-page cache patch sets should be merged. Both extend transparent huge pages to file-backed memory and make the tmpfs filesystem use it. The debate appears to be resolved, as Kirill Shutemov's implementation was quietly merged via the -mm tree for 4.8. This commit contains the documentation changes that, among other things, show how to control the use of huge pages with tmpfs.

  • The kernel has a new formatted-documentation system, based on the Sphinx system. See this article for how this change came to be, and this article for details on how the new scheme works. Over time, the hope is, this change will lead to better, more integrated kernel documentation.

  • As usual, a lot has happened within the perf events subsystem; see this pull request for a detailed list.

  • Some support code for the virtually mapped kernel stacks feature has been merged, but the feature itself has been deferred until 4.9 for further testing.

  • The kernel address-space layout randomization feature has been extended on the x86_64 architecture; the range of randomization has been increased, and more regions of kernel memory will have their placement randomized. With luck, users will not notice anything beyond a failure of exploit scripts to work as reliably as before.

  • The NVMe-over-fabrics subsystem allows the kernel to export NVM Express storage devices over networks and using protocols like RDMA.

  • The device-mapper subsystem now supports direct access to underlying persistent-memory devices via the DAX mechanism. The dm-raid target has also seen a number of improvements, including support for reshaping of arrays and device takeover.

  • The new ACPI overlay mechanism allows the updating of ACPI tables from firmware or via configfs.

  • The GPIO subsystem has a new user-space ABI for the management of general-purpose I/O lines; it is based on char devices and replaces the long-deprecated sysfs interface. In the absence of any sort of documentation, interested readers can see the gpio-hammer and gpio-event-mon examples added to the tools directory.

  • New hardware support includes:

    • Industrial I/O: Freescale MMA7660FC 3-axis accelerometers, Bosch BMA220 3-axis accelerometers, Maxim MAX5487/MAX5488/MAX5489 digital potentiometers, and Broadcom iProc analog-to-digital converters.

    • Media: Sony HELENE Sat/Ter (CXD2858ER) tuners, Renesas R-Car video-input controllers (replacement driver), Mediatek video processor units and video codecs, Pulse Eight HDMI CEC controllers, and Renesas frame compression processors.

    • Miscellaneous: TI DA8xx USB PHYs, Sensirion SHT3x-DIS humidity and temperature sensors, Texas Instruments INA3221 triple power monitors, Fujitsu Technology Solutions Teutates sensor chips, Oxford Semiconductor OXNAS RPS timers, Amlogic Meson random number generators, Maxim MAX77620 and MAX20024 GPIO controllers, and MediaTek MT6323 power-management controllers.

    • Networking KeyStream KS7010 based SDIO WIFI cards.

Changes visible to kernel developers include:

  • There is a new set of atomic_fetch_*() primitives for performing operations on atomic_t variables and returning the previous value. See this article for more information.

  • The reimplementation of the kernel's timer wheel has been merged. The new code provides better performance, in particular avoiding the latency-inducing "cascade" operations required by its predecessor. The cost is that far-future events will happen with less accuracy than before, but nobody could come up with a scenario where that mattered.

  • The crypto subsystem has a new "key agreement" mechanism to support the implementation of key-exchange protocols like Diffie-Hellman. It is rigorously undocumented; the best information available is in this commit and the associated source.

  • The SLUB memory allocator now implements free-list randomization, adding a bit of unpredictability to allocations.

  • Ranges of memory allocated by device drivers (or other subsystems) are typically not relocatable by the memory-management code. That can interfere with the compaction code in tight-memory situations. To make things better, there is a new API that allows drivers to cooperate with the memory-management code in the relocation of their pages when needed. The balloon driver and zram subsystem both use this feature in 4.8, but there should be benefits to moving some other drivers over as well.

By the usual schedule, the 4.8 merge window should close on August 7, and the final 4.8 release can be expected on September 25.

Index entries for this article
KernelReleases/4.8


to post comments

4.8 merge window part 1

Posted Jul 28, 2016 13:15 UTC (Thu) by clugstj (subscriber, #4020) [Link]

"It is rigorously undocumented" - Love the humor Jon.

4.8 merge window part 1

Posted Jul 29, 2016 23:48 UTC (Fri) by PaXTeam (guest, #24616) [Link]

> [KASLR stuff] With luck, users will not notice anything beyond a failure of exploit scripts to work as reliably as before.

has something changed since we posted https://forums.grsecurity.net/viewtopic.php?f=7&t=3367 or is this just more wishful thinking without any evidence? showing a few bugs which are provably exploitable without KASLR *and* provably not exploitable with KASLR would be a good start to prove its usefulness.


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