|
|
Subscribe / Log in / New account

The rest of the 5.2 merge window

By Jonathan Corbet
May 20, 2019
By the time Linus Torvalds released the 5.2-rc1 kernel prepatch and closed the merge window for this development cycle, 12,064 non-merge changesets had been pulled into the mainline repository — about 3,700 since our summary of the first "half" was written. Thus, as predicted, the rate of change did slow during the latter part of the merge window. That does not mean that no significant changes have been merged, though; read on for a summary of what else has been merged for 5.2.

Architecture-specific

  • The PowerPC architecture can now take advantage of hardware support to prevent the kernel from accessing user-space data in unintended ways.
  • 32-Bit PowerPC now has support for KASAN.
  • Mitigations for the Intel microarchitectural data sampling vulnerabilities have been merged. See this page from the kernel documentation for a fairly detailed description of the problem, and this page for mitigation information.

Core kernel

  • There is finally a freezer for the control-group version-2 implementation. It differs from the v1 freezer in that it puts each affected process into a stopped state rather than an uninterruptible sleep; that allows those processes to be operated on (killed, traced, moved to another group) while the group is frozen. See this commit for the documentation update.
  • The new vm.unprivileged_userfaultfd sysctl knob controls whether unprivileged users can use the userfaultfd() system call. The default is to allow unprivileged access (which is consistent with current kernels).
  • Pressure stall monitors, which allow user space to detect and respond quickly to memory pressure, have been added. See this commit for documentation and a sample program.
  • The tracing subsystem exports a new virtual file, tracing/error_log, where the more complex tracing operations can place error messages when things go wrong.
  • The /proc/slab_allocators file turned out to have yet another set of bugs. Since it clearly hasn't worked correctly for years and nobody has complained, this file has been removed.

Filesystems and block layer

  • The handling of soft mounts in NFS v4.0 has been improved, with more accurate timeout handling, faster failover, and a new softerr mount option that can change the error code for timed-out operations to ETIMEDOUT.
  • The old nfsdcld (NFS client-tracking daemon) API has been resurrected as a way of allowing NFS servers to properly track client state over a reboot. If a daemon is running, it takes over the role of the nfsdcltrack helper; the intent is to create a solution that works better in a namespaced environment.
  • There is a new device-mapper target called dm-dust; it can be used to simulate bad blocks in the underlying device. See Documentation/device-mapper/dm-dust.txt for details.

Hardware support

  • Clock: ASPEED realtime clocks, MediaTek MT8183 and MT8516 clocks, Qualcomm QCS404 Turing clock controllers, Cirrus Logic Lochnagar clock controllers, and SiFive FU540 SoC power reset clock interfaces.
  • Input: generic GPIO-controllable vibrators, Azoteq IQS550/572/525 trackpad/touchscreen controllers, and Microchip AT42QT1050 touch sensors.
  • Miscellaneous: AMD MP2 PCIe I2C adapters, Marvell Armada 37xx rWTM BIU mailbox controllers, NXP i.MX TPM pulse-width modulators, Mellanox BlueField SoC GPIO controllers, ROHM BD70528 PMIC watchdog timers, NXP IMX SC watchdog timers, Maxim MAX77650/77651 power-management ICs, STMicroelectronics multi-function eXpanders, Ingenic JZ47xx SoCs battery monitors, Microchip UCS1002 USB port power controllers, and Xilinx ZynqMP FPGA managers.

Internal kernel changes

  • The FOLL_LONGTERM flag has been added to get_user_pages(); this is a part of the bigger effort to solve the problems with that interface and long-term mappings.
  • Two new functions have been added to ease the task of mapping kernel memory into a user-space address range. vm_map_pages() and vm_map_pages_zero() will map a set of pages into a VMA; they differ in that the latter function ignores the vm_pgoff offset in the VMA.
  • Code coverage analysis with gcov is now supported on Clang-compiled kernels.
  • There have been significant changes to the implementation of vmalloc() that improve performance considerably; see this commit for details.

Barring surprises (and there have not been many surprises in recent years), the 5.2 kernel will be released on July 7 or 14.

Index entries for this article
KernelReleases/5.2


to post comments

The rest of the 5.2 merge window

Posted May 20, 2019 18:15 UTC (Mon) by flussence (guest, #85566) [Link]

I hope pressure stall monitors see some adoption. Conventional wisdom in userspace has always been “autodetect core count” for programs that have parallelism (and things like make -j`nproc`), but that number (multiplied by software bloat) is increasing far faster than memory can keep up. Compared to the care taken to not forkbomb users' machines, policies for using memory responsibly seem non-existent.

vmalloc() improvement

Posted May 21, 2019 7:23 UTC (Tue) by meuh (guest, #22042) [Link]

According to commit 68ad4a330433:
# i5-3320M
<default>                vs   <patched>
real        101m22.813s        real  0m56.805s
user          0m0.011s         user  0m0.015s
sys           0m5.076s         sys   0m0.023s
That's an improvement ! Another example of accidentally quadratic algorithm.


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