|
|
Subscribe / Log in / New account

5.19 Merge window, part 1

By Jonathan Corbet
May 27, 2022
As of this writing, just under 4,600 non-merge changesets have been pulled into the mainline repository for the 5.19 development cycle. The 5.19 merge window is clearly well underway. The changes pulled so far cover a number of areas, including the core kernel, architecture support, networking, security, and virtualization; read on for highlights from the first part of this merge window.

Interesting changes pulled into the mainline so far include:

Architecture-specific

  • A number of x86-specific boot options (nosep, nosmap, nosmep, noexec, and noclflush) have all been removed. Each of these disabled a CPU feature that it no longer makes sense to disable.
  • Support for the a.out executable format on x86, which was deprecated in the 5.1 release, has now been completely removed.
  • The x86 split-lock detection mechanism has been made a bit stronger; rather than just warning (by default) when a process uses split locks, the kernel will slow that process down considerably. That should preserve the performance of the rest of the system and, with luck, cause the offending application to be fixed.
  • The new Intel "in-field scan" mechanism can run diagnostics and detect CPU problems in deployed systems. This documentation commit has more information.
  • The xtensa architecture has gained support for a number of features, including SMP coprocessors, KCSAN, hibernation, and more.
  • The m68k architecture now implements a virtual machine based on the Android Goldfish emulator.
  • The Arm Scalable Matrix Extension is now supported (in host mode only, not for guest systems).

Core kernel

  • The io_uring subsystem has seen a number of enhancements. The new IORING_RECVSEND_POLL_FIRST flag will, when set for networking operations, cause an operation to go directly to polling rather than attempting a transfer first; this can save some overhead when the caller expects the operation to not be able to proceed immediately. There are some new flags to ease the management of fixed file descriptors. The "multi-shot" mode for accept() allows multiple connections to be accepted in a single operation. There are new operations to manipulate extended attributes on files. The socket() system call is now supported. Finally, there is also now support for "passthrough" operations that can send NVMe commands directly to the device.

    All of these new API features are diligently undocumented.

  • It is now possible to store typed pointers in BPF maps; this merge commit has some more information. This feature should not be confused with "dynamic BPF pointers", which will also be in 5.19; this merge commit contains some information.

Filesystems and block I/O

  • The EROFS read-only filesystem has been significantly reworked to use the fscache layer. This feature can, evidently, significantly improve performance on systems running a lot of containers from EROFS images. This merge message has a bit more information.
  • The EROFS work involved adding an "on-demand mode" to fscache, which is documented in this commit.

Hardware support

  • Hardware monitoring: Aquacomputer Octo temperature sensors and fan controllers, Aquacomputer Farbwerk 360 temperature sensors, Infineon XDPE152 voltage regulators, Microchip LAN9668 temperature sensors, and Nuvoton NCT6775F I2C interfaces.
  • Miscellaneous: Nvidia SN2201 platform switches, Silicon Mitus SM5703 voltage regulators, and MediaTek SPI NAND flash interfaces.
  • Networking: Marvell Octeon PCI Endpoint NICs, CTU CAN-FD IP cores (see the documentation), Analog Devices Industrial Ethernet T1L PHYs, pureLiFi LiFi wireless USB adapters, MediaTek PCIe 5G WWAN modem T7xx adapters, Texas Instruments DP83TD510 Ethernet 10Base-T1L PHYs, Sunplus Dual 10M/100M Ethernet adapters, and Realtek 8852CE PCI wireless network (Wi-Fi 6E) adapters.

    Also: a number of old networking drivers have been removed (commit, commit, commit, commit, commit, commit) as being unmaintained and, presumably, unused.

  • Additionally: the power-management subsystem has gained support for devices that operate on an "artificial" power scale. In short, this means such a device provides information about the relative efficiency of different power states, but that information is not tied to any real-world scale. This documentation commit contains a little more information.

Networking

  • The BIG TCP patch set has been merged; this work allows for the sending of huge IPv6/TCP packets on data-center networks.
  • The addition of packet-drop annotations continues, improving an administrator's visibility into why network packets are not making it through the system.
  • The multipath TCP (MPTCP) protocol can now fall back to regular TCP in some situations where the multipath features cannot be used.
  • There is also a new user-space API for the management of MPTCP flows. Documentation is scarce but there is an introduction in this merge commit.

Security-related

  • Various confidential-computing mechanisms allow secrets to be pushed into virtual machines without exposing them to the host system. The kernel's EFI subsystem can now expose those secrets to the guest via a directory (security/coco) under securityfs. The documentation in this commit and this commit gives some more information.
  • The kernel's lockdown mode will prevent even a privileged process from changing kernel memory outside of the kernel's control — or, at least, that is the intent. It turns out that lockdown is easily bypassed by simply firing up a kernel debugger. This fix, applied to the mainline (and certainly headed toward the stable updates), closes the hole.
  • There have been a number of improvements to the random-number generator to improve robustness and performance; this merge commit contains an overview.
  • The structure randomization hardening feature is now available with the Clang compiler as of version 15.
  • The Landlock security module now supports rules controlling the renaming of files.
  • The Integrity Measurement Architecture (IMA) can now use fs-verity file digests for verification.
  • The meaning of "unprivileged BPF" has changed somewhat. In current kernels, disabling unprivileged BPF makes all bpf() system-call commands unavailable. In 5.19, instead, unprivileged processes will have access to commands that do not actually create objects. That enables scenarios where a privileged process loads a BPF program, then allows an unprivileged process to interact with it. This merge commit has a little more information.

Virtualization and containers

  • Support for AMD's Secure Nested Paging feature has been added. In short, this feature will cause a virtual machine to be notified if its encrypted memory has been accessed outside of the machine. This mechanism can, among other things, thwart replay attacks.
  • Support has also been added for Intel's Trusted Domain Extensions (TDX) mechanism, which provides some similar features. See this documentation commit for some more information.

Internal kernel changes

The 5.19 merge window is just getting started; it can be expected to remain open through June 5. Once it closes, LWN will be back with a summary of what was pulled in the second half; stay tuned.

Index entries for this article
KernelReleases/5.19


to post comments


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