6.0 Merge window, part 2
The most significant changes pulled in the second half of the 6.0 merge window include:
Architecture-specific
- The OpenRISC and LoongArch architectures have both gained support for PCI buses.
- The RISC-V architecture now has support for the "Zicbom" extension, which provides for the management of devices with non-cache-coherent DMA.
Core kernel
- The runtime verification subsystem has been merged. This subsystem allows the creation of a model of various kernel states and the transitions between them; should the kernel fail to follow the model at some point, it can raise the alarm or even panic the system. One example is the WIP model which ensures that wakeup events do not happen with preemption enabled.
- The DAMON mechanism has gained some new features that can be used to influence memory management from user space. Most significant is the "LRU_SORT" module, which can reorder the least-recently-used lists to prioritize some pages over others. See this documentation commit for details.
- Support for the creation of new CXL memory regions has been added; this commit changelog describes how the sysfs-based administrative interface works.
Filesystems and block I/O
- The kernel has gained support for NVMe in-band authentication.
- The ext4 filesystem supports two new ioctl() operations — EXT4_IOC_GETFSUUID and EXT4_IC_SETFSUUID, which can fetch or set the UUID stored in a filesystem superblock.
- The NFSv4 server will now limit itself to 1024 active clients for each 1GB of memory in the system. Attempts to exceed that number will return temporary failures and start the process of cleaning up old, idle clients.
Hardware support
- Clock: Microchip PolarFire realtime clocks, TI K3 realtime clocks, and Nuvoton NCT3018Y realtime clocks.
- GPIO and pin control: Intel Meteor Lake pin and GPIO controllers, Renesas RZ/V2M pin and GPIO controllers, Renesas R-Car V4H pin controllers, Qualcomm 8909 pin controllers, Allwinner D1 pin controllers, and Qualcomm SM6375 pin controllers.
- Input: Elan eKTH6915 i2c-hid touchscreens.
- Miscellaneous: Microchip SAMA7G5 OTP controllers, Microchip Polarfire SPI FPGA managers, Qualcomm SPMI round-robin analog-to-digital converters, Qualcomm SM6350 interconnects, Freescale i.MX8MQ interconnects, MediaTek PCIe and DisplayPort PHYs, Meson G12A MIPI analog DPHYs, Freescale i.MX8qm LVDS PHYs, Microsoft Surface tablet-mode switches, Qualcomm SM8450 camera clock controllers, Qualcomm SM8350 graphics clock controllers, Apple audio DMA controllers, Renesas R-Car UFS controllers, Alibaba Elastic RDMA adapters, TI TPS380x reset controllers, I2C-connected TPM 2.0 trusted platform modules, Broadcom BCM63138 LED controllers, and Mellanox BlueField reset controllers.
- Sound: NVIDIA Tegra210 output processing engines, Intel Meteor Lake audio interfaces, Qualcomm WSA8830/WSA8835 class-D amplifiers, Texas Instruments TAS2780 mono audio amplifiers, and Mediatek MT8186 audio interfaces.
- USB: Aspeed USB2.0 device controllers, Microchip PolarFire USB controllers, Analogix ANX7411 type-C DRP port controllers, and STMicroelectronics STM32G0 type-C PD controllers.
- Also: the VME bus subsystem has been moved into the staging directory (for the second time) and will be removed entirely unless somebody steps up to maintain it.
Miscellaneous
- The perf tool has gained new reports describing lock contention and time used by kernel work; this merge commit describes both (and a lot of other perf enhancements as well). Even more perf enhancements came in with this merge.
Virtualization and containers
- The "guest vCPU stall detector" is a new pseudo-device that serves as a sort of watchdog; a virtual machine must "pet" it occasionally or the host can conclude that the machine has stalled. This commit has a little more information.
Internal kernel changes
- The CONFIG_ANDROID configuration option has been removed as "
obviously a bad idea
". - There is a new debugfs interface with a wealth of information about the known memory shrinkers and their performance. This documentation commit has the details.
- The configuration option to build the kernel with -O3 optimization has been removed.
There are, of course, some things that didn't make it. The printk() pull request was rather severely rejected by Torvalds, so it seems there will be no work on that subsystem at all in this cycle. Coming after the reverting of the console-thread feature in 5.19, this makes two difficult cycles for that subsystem. Meanwhile, there had been some hopes that Rust support would be merged for 6.0, but that code still needs wider review.
There are also a couple of significant memory-management features that had been penciled in for 6.0 but were not pushed in the end. The maple tree data structure is getting closer, but was deemed to not be ready enough to go into this release. The multi-generational LRU feature ended up as collateral damage from that decision. The current plan, according to Andrew Morton, is to get both patch sets into -mm with an eye toward merging in 6.1.
First, though, the community has to get the 6.0 kernel out; that will mean
finding and fixing a lot of bugs between now and the release date, which
will almost certainly be either October 2 or 9.
Index entries for this article | |
---|---|
Kernel | Releases/6.0 |
Posted Aug 19, 2022 13:03 UTC (Fri)
by flussence (guest, #85566)
[Link] (1 responses)
Posted Oct 3, 2022 7:24 UTC (Mon)
by Sesse (subscriber, #53779)
[Link]
6.0 Merge window, part 2
6.0 Merge window, part 2