|
|
Subscribe / Log in / New account

The second half of the 4.19 merge window

By Jonathan Corbet
August 26, 2018
By the time Linus Torvalds released 4.19-rc1 and closed the merge window for this development cycle, 12,317 non-merge changesets had found their way into the mainline; about 4,800 of those landed after last week's summary was written. As tends to be the case late in the merge window, many of those changes were fixes for the bigger patches that went in early, but there were also a number of new features added. Some of the more significant changes include:

Core kernel

  • The full set of patches adding control-group awareness to the out-of-memory killer has not been merged due to ongoing disagreements, but one piece of it has: there is a new memory.oom.group control knob that will cause all processes within a control group to be killed in an out-of-memory situation.
  • A new set of protections has been added to prevent an attacker from fooling a program into writing to an existing file or FIFO. An open with the O_CREAT flag to a file or FIFO in a world-writable, sticky directory (e.g. /tmp) will fail if the owner of the opening process is not the owner of either the target file or the containing directory. This behavior, disabled by default, is controlled by the new protected_regular and protected_fifos sysctl knobs.

Filesystems and block layer

  • The dm-integrity device-mapper target can now use a separate device for metadata storage.
  • EROFS, the "enhanced read-only filesystem", has been added to the staging tree. It is "a lightweight read-only file system with modern designs (eg. page-sized blocks, inline xattrs/data, etc.) for scenarios which need high-performance read-only requirements, eg. firmwares in mobile phone or LIVECDs"
  • The new "metadata copy-up" feature in overlayfs will avoid copying a file's contents to the upper layer on a metadata-only change. See this commit for details.

Hardware support

  • Graphics: Qualcomm Adreno A6xx GPUs.
  • Industrial I/O: Spreadtrum SC27xx series PMIC analog-to-digital converters, Analog Devices AD5758 digital-to-analog converters, Intersil ISL29501 time-of-flight sensors, Silicon Labs SI1133 UV index/ambient light sensor chips, and Bosch Sensortec BME680 sensors.
  • Miscellaneous: Generic ADC-based resistive touchscreens, Generic ASIC devices via the Google Gasket framework, Analog Devices ADGS1408/ADGS1409 multiplexers, Actions Semi Owl SoCs DMA controllers, MEN 16Z069 watchdog timers, Rohm BU21029 touchscreen controllers, Cirrus Logic CS47L35, CS47L85, CS47L90, and CS47L91 codecs, Cougar 500k gaming keyboards, Qualcomm GENI-based I2C controllers, Actions Semiconductor Owl I2C controllers, ChromeOS EC-based USBPD chargers, and Analog Devices ADP5061 battery chargers.
  • USB: Nuvoton NPCM7XX on-chip EHCI USB controllers, Broadcom Stingray PCIe PHYs, and Renesas R-Car generation 3 PCIe PHYs.
  • There is also a new subsystem for the abstraction of GNSS (global navigation satellite systems — GPS, for example) receivers in the kernel. To date, such devices have been handled with an abundance of user-space drivers; the hope is to bring some order in this area. Support for u-blox and SiRFstar receivers has been added as well.

Kernel internal

  • The __deprecated marker, used to mark interfaces that should no longer be used, has been deprecated and removed from the kernel entirely. Torvalds said: "They are not useful. They annoy everybody, and nobody ever does anything about them, because it's always 'somebody elses problem'. And when people start thinking that warnings are normal, they stop looking at them, and the real warnings that mean something go unnoticed."
  • The minimum version of GCC required by the kernel has been moved up to 4.6.

There are a couple of significant changes that failed to get in this time around, including the XArray data structure. The patches are thought to be ready, but they had the bad luck to be based on a tree that failed to be merged for other reasons, so Torvalds didn't even look at them. That, in turn, blocks another set of patches intended to enable migration of slab-allocated objects.

The other big deferral is the new system-call API for filesystem mounting. Despite ongoing concerns about what happens when the same low-level device is mounted multiple times with conflicting options, Al Viro sent a pull request to send this work upstream. The ensuing discussion made it clear that there is still not a consensus in this area, though, so it seems that this work has to wait for another cycle.

Assuming all goes well, the kernel will stabilize over the coming weeks and the final 4.19 release will happen in mid-October.

Index entries for this article
KernelReleases/4.19


to post comments

The second half of the 4.19 merge window

Posted Aug 27, 2018 5:46 UTC (Mon) by willy (subscriber, #9762) [Link]

The XArray didn't make it in, but the new IDA API did.

Instead of writing out:

retry:
    ida_pre_get(GFP_whatever);
    spin_lock(&my_ida_lock);
    ret = ida_get_new_above(&my_ida, 1, &id);
    if (ret == 0 && id > max) {
        ida_remove(&my_ida, id);
        ret = -ENOSPC;
    }
    spin_unlock(&my_ida_lock);
    if (ret == -EAGAIN)
        goto retry;
you can simply type
id = ida_alloc_range(&my_ida, 1, max, GFP_KERNEL);
There weren't many users of the pre_get API left; most converted to ida_simple_get() a long time ago.

I have some coccinelle-based patches to mass-convert users of the old "simple" API to the new API. Not quite ready yet, but the ida_simple_* interfaces should be gone next release.


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