The first half 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 | |
---|---|
Kernel | Releases/6.10 |
Posted May 16, 2024 22:02 UTC (Thu)
by pbonzini (subscriber, #60935)
[Link]
(Referring to the Rust ktime_t abstraction).
Posted May 17, 2024 11:00 UTC (Fri)
by intgr (subscriber, #39733)
[Link] (1 responses)
Sounds like there should be multiple priority levels?
Posted May 17, 2024 14:59 UTC (Fri)
by mb (subscriber, #50428)
[Link]
The first half of the 6.10 merge window
The first half of the 6.10 merge window
The first half of the 6.10 merge window