|
|
Subscribe / Log in / New account

The first half of the 6.10 merge window

By Jonathan Corbet
May 16, 2024
The merge window for the 6.10 kernel release opened on May 12; between then and the time of this writing, 6,819 non-merge commits were pulled into the mainline kernel for that release. Your editor has taken some time out from LSFMM+BPF in an attempt to keep up with the commit flood. Read on for an overview of the most significant changes that were pulled in the early part of the 6.10 merge window.

Architecture-specific

  • Support for a number of early Alpha CPUs (EV5 and earlier) has been removed. As noted in the merge message, these were the only machines supported by the kernel that did not provide byte-level memory access, and that created complications for support throughout the kernel. It is also the first non-x86 architecture to which the kernel was ported. Linus Torvalds amended the merge message to add:

    I dearly loved alpha back in the days, but the lack of byte and word operations was a horrible mistake and made everything worse - including very much the crazy IO contortions that resulted from it.

    It certainly wasn't the only mistake in the architecture, but it's the first-order issue.

    So while it's a bit sad to see the support for my first alpha go away, if you want to run museum hardware, maybe you should use museum kernels.

  • The x32 subarchitecture now supports shadow stacks.
  • Arm64 systems have gained support for the userfaultfd() write-protect feature.
  • There is now a BPF just-in-time compiler for 32-bit ARCv2 processors.

Core kernel

  • Rust abstractions for time handling within the kernel have been added. This work was discussed in early 2023 and has finally found its way in; see this commit for the current form of this interface.
  • BPF programs now have the ability to use wait queues in the kernel; see this merge message for some more information. It is also now possible for BPF programs to disable and enable preemption.

Filesystems and block I/O

  • The new F_DUPFD_QUERY operation for fcntl() allows a process to check whether two file descriptors refer to the same underlying file. This functionality is also provided by kcmp(), but in a more restricted form that leaks less information from the kernel and, as a result, should be available even on systems where kcmp() is disabled.
  • The block-throttling low-limit mechanism, described in the Kconfig file as "a best effort limit to prioritize cgroups", has been removed. It was marked as "experimental" since being introduced in 2017, does not appear to have acquired users, and complicated the maintenance of the block layer.
  • The EROFS filesystem now supports Zstandard compression.
  • The dm-crypt device-mapper target has a new high_priority option that allows it to use high-priority workqueues for its processing. This option can improve performance on larger systems, but defaults to "off" to avoid creating latency problems for other workloads (such as audio processing) on smaller systems.

Hardware support

  • GPIO and pin control: pin controllers using the SCMI message protocol and Intel Granite Rapids-D vGPIO controllers.
  • Graphics: Samsung S6E3FA7 panels, ARM Mali CSF-based GPUs, LG SW43408 panels, Raydium RM69380-based DSI panels, and Microchip LVDS serializers.
  • Hardware monitoring: Analog Devices ADP1050 power-supply controllers, Lenovo ThinkStation EC sensors, and Infineon XDP710 hot-swap controllers.
  • Input: WinWing Orion2 throttles.

    Also: the BPF for HID drivers framework2 is finally seeing some use with the addition of a number of small fixup programs to the kernel tree, the first of which is for the XPPen Artist 24 device. Some new udev functionality is used to load these programs as needed.

  • Miscellaneous: STMicroelectronics STM32 firewall-framework controllers, Arm Trusted Services secure partitions, NXP DCP key-storage devices, NVIDIA Tegra security engines, and Airoha SPI NAND flash interfaces.
  • Networking: Airoha EN8811H 2.5 Gigabit PHYs, Realtek 8922AE PCI wireless network (Wi-Fi 7) adapters, Realtek 8723CS SDIO wireless network adapters, TI Gigabit PRU SR1.0 Ethernet adapters, Microsemi PD692x0 I2C power sourcing equipment controllers, TI TPS23881 I2C power sourcing equipment controllers, Renesas RZ/N1 Ethernet controllers, and Intel HCI PCIe Bluetooth controllers.
  • Sound: Rockchip RK3308 audio codecs and Texas Instruments PCM6240 family audio chips.

Miscellaneous

  • The version of the Rust language used with kernel code has been moved up to 1.78.0. Among other things, this change has made it possible to drop the kernel's forked version of the alloc crate, removing about 10,000 lines of code. A number of other changes have been made as well; see this merge message and this commit for the full list.

Networking

  • The performance of zero-copy send operations using io_uring has been significantly improved. It is also now possible to "bundle" multiple buffers for send and receive operations, again improving performance.
  • The sending of file descriptors over Unix-domain sockets with SCM_RIGHTS messages has long been prone to the creation of reference-count cycles; see this 2019 article for one description of the problem and attempts to resolve it. The associated garbage-collection code has been massively reworked for 6.10, leading to a simpler and more robust solution; see this merge message for some more information.
  • There is now basic support for setting up packet forwarding control protocol (PFCP) filters, though much of the work must be done in user space and only IPv4 is supported.
  • TCP sockets now support the SO_PEEK_OFF socket option in the same way that Unix-domain sockets do. This allows the specification of an offset to be used when looking at data with MSG_PEEK.

Security-related

  • The kernel now supports encrypted interactions with trusted platform module (TPM) devices; this documentation commit has more information.
  • The "crypto usage statistics" feature, which is seemingly unused, has been removed from the kernel. See this commit for a detailed justification for this removal.
  • BPF programs now have access to the kernel's crypto framework.

The 6.10 merge window can be expected to remain open until May 26. Once it has closed, LWN will be back with a summary of what was pulled into the mainline for the latter part of this merge window.

Index entries for this article
KernelReleases/6.10


to post comments

The first half of the 6.10 merge window

Posted May 16, 2024 22:02 UTC (Thu) by pbonzini (subscriber, #60935) [Link]

Oh, so in the end there's a single type for both absolute times and deltas. It would be interesting to have a summary of what happened since https://lwn.net/Articles/924746/.

(Referring to the Rust ktime_t abstraction).

The first half of the 6.10 merge window

Posted May 17, 2024 11:00 UTC (Fri) by intgr (subscriber, #39733) [Link] (1 responses)

> The dm-crypt device-mapper target has a new high_priority option that allows it to use high-priority workqueues for its processing. This option can improve performance on larger systems, but defaults to "off" to avoid creating latency problems for other workloads (such as audio processing) on smaller systems.

Sounds like there should be multiple priority levels?

The first half of the 6.10 merge window

Posted May 17, 2024 14:59 UTC (Fri) by mb (subscriber, #50428) [Link]

Can't you just renice the workqueues from userspace?


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