大数跨境
0
0

The end of the 6.18 merge window

The end of the 6.18 merge window 跨境人老刘
2025-10-15
8
导读:Rust 在驱动界登堂入室
October 14, 2025
TL;DR
Linux 6.18 合并窗口共引入近 1.2 万次非合并提交,更新量略高于 6.17。本次主要变化包括:RISC-V 新增 RIMT 与 RPMI 支持,x86 TDX 可与 kexec 并用;Rust Binder 驱动正式合入;ext4、FUSE、Overlayfs 等文件系统改进;新增多种 SoC、传感器、USB、声卡与网络硬件支持;KVM 支持 Intel/AMD CET 虚拟化;SEV-SNP 加密增强;内部改进包括 DMA 接口迁移、Rust USB 驱动基础完善及大页优化。6.18 预计将成为下一个 LTS 版本。

The primary benefit from subscribing to LWN is helping to keep us publishing, but, beyond that, subscribers get immediate access to all site content and access to a number of extra site features. Please sign up today!  

Reference:
  • Subscribe to LWN, https://lwn.net/subscribe/

  • 6.18 merge window, part 1

  • ACPI: RISC-V: Add support for RIMT

  • irqchip/riscv-rpmi-sysmsi: Add ACPI support

  • mailbox: Add RISC-V SBI message proxy (MPXY) based mailbox driver

  • openrisc: Add jump label support

  • Merge tag 'x86_tdx_for_6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

  • um: Support SPARSE_IRQ

  • A Rust implementation of Android's Binder

  • rust_binder: add Rust Binder driver

  • https://www.man7.org/linux/man-pages/man2/umount.2.html

  • umount_tree(): take all victims out of propagation graph at once

  • fuse: add COPY_FILE_RANGE_64 that allows large copies

  • https://man7.org/linux/man-pages/man2/copy_file_range.2.html

  • ext4: add support for 32-bit default reserved uid and gid values

  • ext4: implemet new ioctls to set and get superblock parameters

  • ext4: remove obsolete EXT3 config options

  • https://origin.kernel.org/doc/html/latest/admin-guide/device-mapper/dm-pcache.html

  • dm-pcache: add persistent cache target in device-mapper

  • f2fs: add lookup_mode mount option

  • f2fs: add sysfs entry for effective lookup mode

  • Merge tag 'ovl-update-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/overlayfs/vfs

  • HID: haptic: introduce hid_haptic_device

  • kho: add support for preserving vmalloc allocations

  • tpm: Disable TPM2_TCG_HMAC by default

  • Merge tag 'kvm-x86-ciphertext-6.18' of https://github.com/kvm-x86/linux into HEAD

  • Merge tag 'kvm-x86-cet-6.18' of https://github.com/kvm-x86/linux into HEAD

  • docs: changes: better document Python needs

  • Merge tag 'dma-mapping-6.18-2025-09-30' of git://git.kernel.org/pub/scm/linux/kernel/git/mszyprowski/linux

  • [PATCH v6 00/16] dma-mapping: migrate to physical address-based API

  • mm/hmm: migrate to physical address-based DMA mapping API

  • Merge tag 'char-misc-6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc

  • samples: rust: add a USB driver sample

  • USB: disable rust bindings from the build for now

  • mm: introduce memdesc_flags_t

  • Simpler management of the huge zero folio

  • Improving control over transparent huge page use

  • prctl: extend PR_SET_THP_DISABLE to optionally exclude VM_HUGEPAGE

  • perf symbols: Handle 'N' symbols in /proc/kallsyms

  • perf parse-events: Add 'X' modifier to exclude an event from being regrouped

  • Changes to exported symbols in the 6.18 merge window, https://lwn.net/Articles/1041911/

  • Linux 6.18-rc1



The 6.18 merge window has come to an end, bringing with it a total of 11,974 non-merge commits, 3,499 of which came in after LWN's first-half summary. The total is a little higher than the 6.17 merge window, which saw 11,404 non-merge commits. There are once again a good number of changes and new features included in this release.


6.18 合并窗口已经结束,总共包含了 11,974 个非合并提交,其中 3,499 个是在 LWN 上半年度总结之后提交的。这个总数略高于 6.17 合并窗口,当时包含了 11,404 个非合并提交。这次发布再次包含了许多变更和新功能。


The most important changes included in the second part of the 6.18 merge window were: 6.18 合并窗口第二部分包含的最重要变更包括:


Architecture-specific


  • The kernel now understands the RISC-V IO Mapping Table (RIMT) that provides information on some kinds of IOMMU via ACPI.

    内核现在理解 RISC - V IO 映射表(RIMT),该表通过 ACPI 提供有关某些类型 IOMMU 的信息。

  • The RISC-V RPMI platform-management communication interface and MPXY SBI firmware shared-memory communication system are both now supported.

    RISC - V RPMI 平台管理通信接口和 MPXY SBI 固件共享内存通信系统现在都得到支持。

  • Static keys, which depend on having an implementation of the jump_label() helper, are now supported on openrisc.

    静态键现在在 openrisc 上得到支持,它们依赖于 jump_label() 辅助实现的提供。

  • Trust domain extensions (TDX) on x86 and kexec can now be used at the same time; previously, the encryption hardware underlying TDX would overwrite cachelines belonging to the new kernel.

    x86 和 kexec 上的可信域扩展(TDX)现在可以同时使用;以前,TDX 底层的加密硬件会覆盖属于新内核的缓存行。

  • User-mode Linux (UML) now supports sparse interrupts to better support the interrupt KUnit tests.

    用户模式 Linux(UML)现在支持稀疏中断,以更好地支持中断 KUnit 测试。


Core kernel


  • The Rust Binder driver has finally been merged, after many necessary supporting APIs were added. The Binder maintainers say that the C implementation will remain in the kernel for several more releases while they verify that the Rust implementation precisely matches the existing user-space interface. Once that happens, it will be a true point of no return for Rust in the kernel, given that Binder is both essential to Android and receiving constant development.

    Rust Binder 驱动程序终于被合并,在添加了许多必要的支持 API 之后。Binder 维护者表示,C 实现将在内核中保留几个更多版本,同时他们验证 Rust 实现是否精确匹配现有的用户空间接口。一旦发生这种情况,考虑到 Binder 对 Android 至关重要且不断开发,这将是对 Rust 在内核中的真正不可逆转的点。


Filesystems and block I/O


  • Calls to umount() should no longer provoke quadratic behavior when a mount contains many other mounts.

    当挂载点包含许多其他挂载点时,调用 umount() 不再会引发二次行为。

  • FUSE filesystems can now perform direct copies of ranges larger than 32 bits in size. This lets such filesystems support copy_file_range()

    FUSE 文件系统现在可以执行大于 32 位大小的范围直接复制。这允许此类文件系统支持 copy_file_range()

  • The ext4 filesystem now has 32-bit reserved user and group IDs and a new ioctl() interface to get and set superblock parameters. Some legacy ext3 kernel-configuration options, which remained after the old ext3 filesystem was subsumed by ext4, have now been fully removed.

    ext4 文件系统现在具有 32 位保留用户和组 ID,以及一个新的 ioctl() 接口来获取和设置超级块参数。一些遗留的 ext3 内核配置选项,在旧的 ext3 文件系统被 ext4 吸收后仍然存在,现在已经被完全移除。

  • A new device-mapper target (dm-pcache) can use persistent memory as a cache for slower block devices.

    一个新的设备映射器目标(dm-pcache)可以使用持久内存作为较慢块设备的缓存。

  • The f2fs filesystem now has a lookup_mode mount option to control the performance characteristics of accessing case-folded directories. The chosen mode can be read from a new sysfs entry.

    f2fs 文件系统现在有一个 lookup_mode 挂载选项来控制访问小写字母目录的性能特征。选择的模式可以从一个新的 sysfs 条目中读取。

  • Overlayfs now supports case-folding as well, although not on a per-directory basis. Each overlayfs layer must be entirely case-folded or not case-folded.

    Overlayfs 现在也支持小写字母转换,尽管不是基于每个目录。每个 Overlayfs 层必须完全小写字母转换或不小写字母转换。


Hardware support


  • Clock: Allwinner A523/T527 MCU clock control units, Qualcomm ipq5424 APSS clock controllers, Qualcomm Glymur SoC TCSR, global, and display clock controllers, Qualcomm MSM8937 SoC clocks, STMicroelectronics STM32MP21 clocks, MediaTek MT8195 vencsys clocks, MediaTek MT8196 vencsys, vdecsys, ufssys, pextpsys, I2C, mcu, mdpsys, mfg, and disp0 clock controllers, and SpacemiT P1 real-time clocks.

    时钟:Allwinner A523 / T527 MCU 时钟控制单元,高通 ipq5424 APSS 时钟控制器,高通 Glymur SoC TCSR,全局以及显示时钟控制器,高通 MSM8937 SoC 时钟,意法半导体 STM32MP21 时钟,联发科 MT8195 vencsys 时钟,联发科 MT8196 vencsys,vdecsys,ufssys,pextpsys,I2C,mcu,mdpsys,mfg 以及 disp0 时钟控制器,以及 SpacemiT P1 实时时钟。

  • Graphics: Qualcomm QCS8300 eDP PHYs.

    图形:高通 QCS8300 eDP PHY。

  • Industrial I/O: Vishay VEML6046X00 high accuracy RGBIR color sensors, Intel Bay Trail/Cherry Trail Dollar Cove TI PMIC ADC devices, Infineon TLV493D 3D magnetometers, Analog Devices ADE9000 multiphase power monitors, Marvell 88PM886 PMIC analog-digital converters, and Rohm BD79112 analog-digital converters.

    工业 I/O:Vishay VEML6046X00 高精度 RGBIR 色彩传感器,英特尔 Bay Trail/Cherry Trail Dollar Cove TI PMIC ADC 设备,英飞凌 TLV493D 3D 磁力计,亚德诺半导体 ADE9000 多相电源监控器,Marvell 88PM886 PMIC 模数转换器,以及罗姆 BD79112 模数转换器。

  • Input: Awinic AW86927 haptic chips, Hynitron CST816x series controllers, and Himax HX852x(ES) touchscreen controllers.

    输入:Awinic AW86927 触觉芯片,Hynitron CST816x 系列控制器,以及 Himax HX852x (ES) 触摸屏控制器。

  • Miscellaneous: ECB and CBC modes of Texas Instruments DTHE V2 hardware AES engines, Xilinx Versal random-number generators, ThinkPad T14s Gen6 Snapdragon embedded controllers, Acer A1-840 tablets, Loongson-2K100 and 2K0500 NAND controllers, FudanMicro FM25S01A NAND controllers, Realtek RTl93xx switch SoC ECC controllers, STMicroelectronics M2LRxx I2C devices, ADLink PCI-7250, LPCI-7250, and LPCIe-7250 PCI/PCIe boards, Airoha AN8855 switch electronic fuses, SpacemiT K1 PDMA controllers, Sophgo SG2042 SoC PCIe controllers, STMicroelectronics STM32MP25 PCIe controllers, and MediaTek MT8196 SoC GPUEB IPI mailboxes.

    杂项:德州仪器 DTHE V2 硬件 AES 引擎的 ECB 和 CBC 模式,Xilinx Versal 随机数生成器,联想 ThinkPad T14s Gen6 骁龙嵌入式控制器,宏碁 A1-840 平板电脑,龙芯 Loongson-2K100 和 2K0500 NAND 控制器,复旦 FudanMicro FM25S01A NAND 控制器,瑞昱 Realtek RTl93xx 交换 SoC ECC 控制器,意法半导体 STMicroelectronics M2LRxx I2C 设备,ADLink PCI-7250、LPCI-7250 和 LPCIe-7250 PCI / PCIe 主板,爱立信 Airoha AN8855 交换电子熔断器,SpacemiT K1 PDMA 控制器,矽谷 Sophgo SG2042 SoC PCIe 控制器,意法半导体 STM32MP25 PCIe 控制器,以及联发科 MediaTek MT8196 SoC GPUEB IPI 邮箱。

  • Networking: Pensando Ethernet RDMA devices and MediaTek PCIe 5G HP DRMR-H01 networking cards.

    网络:Pensando 以太网 RDMA 设备和联发科 MediaTek PCIe 5G HP DRMR - H01 网络卡。

  • Sound: DualSense Playstation controller audio jacks.

    音频:DualSense PlayStation 控制器音频插孔。

  • USB: Intel USBIO USB IO-expanders, Renesas RZ/G3E SoC USB host controllers, Maxim MAX14526 MUIC devices, Qualcomm PMIV0104 eUSB2 repeaters, and Sophgo CV18XX/SG200X USB PHYs.

    USB:英特尔 Intel USBIO USB IO 扩展器,瑞萨半导体 Renesas RZ/G3E SoC USB 主机控制器,美信 Maxim MAX14526 MUIC 设备,高通 Qualcomm PMIV0104 eUSB2 中继器,以及矽谷 Sophgo CV18XX/SG200X USB PHY。


Miscellaneous


  • Human interface device (HID) drivers can now handle haptic touchpads.

    人机接口设备(HID)驱动程序现在可以处理触觉触摸板。

  • Kernel hand-over can now preserve vmalloc() allocations.

    内核交接现在可以保留 vmalloc() 分配。


Security-related


  • Following feedback suggesting that it is broken, the new HMAC-encrypted-transaction support on the trusted-platform module (TPM) bus has been disabled by default.

    根据反馈指出存在问题,受信任平台模块(TPM)总线上的新 HMAC 加密事务支持已默认禁用。


Virtualization and containers


  • x86 hosts can now enable SEV-SNP CipherText Hiding, which prevents unauthorized CPU accesses from reading the ciphertext of secure nested paging (SNP) guests' private memory.

    x86 主机现在可以启用 SEV - SNP 密文隐藏功能,该功能可防止未经授权的 CPU 访问读取安全嵌套分页(SNP)虚拟机私有内存的密文。

  • KVM supports virtualizing control-flow enforcement technology (CET) on Intel (in the form of shadow stacks and indirect branch tracking) and AMD (in the form of shadow stacks) chips. While shadow stacks and indirect branch tracking can theoretically be enabled separately, in practice that has performance problems, so KVM will enable both if either one is requested.

    KVM 支持在 Intel(以影子栈和间接分支跟踪的形式)和 AMD(以影子栈的形式)芯片上虚拟化控制流执行技术(CET)。虽然理论上可以单独启用影子栈和间接分支跟踪,但在实践中这会导致性能问题,因此如果请求其中任何一个,KVM 都会启用两者。


Internal kernel changes


  • The build documentation now clarifies that Python is a required dependency for many kernel configurations.

    构建文档现在明确说明 Python 是许多内核配置的必要依赖项。

  • The DMA-mapping API continues the migration to physical addresses as the primary interface, rather than page pointers and offsets. The patch set gives the justification, and another commit in this series shows a sample conversion.

    DMA 映射 API 继续将物理地址作为主要接口进行迁移,而不是页指针和偏移量。补丁集提供了理由,该系列中的另一个提交展示了示例转换。

  • Relatedly, Greg Kroah-Hartman has said that all of the pieces needed to implement a typical USB driver in Rust are now in place — although, with only a sample driver using the abstractions, the bindings themselves are disabled in the build until someone submits an actual, working USB driver and any remaining problems are fixed.

    相关地,Greg Kroah-Hartman 表示实现 Rust 中典型 USB 驱动程序所需的所有组件现已就绪 —— 尽管由于只有一个使用抽象的示例驱动程序,绑定本身在构建中是禁用的,直到有人提交一个实际的、可工作的 USB 驱动程序并修复任何剩余问题。

  • The work to support memory descriptors continues; the kernel now has a new memdesc_flags_t structure to separate out the flags from slab and folio structures.

    支持内存描述符的工作仍在继续;内核现在有一个新的 memdesc_flags_t 结构来将标志与 slab 和 folio 结构分离。

  • The work on huge zero folios has been merged.

    对巨型零 folio 的工作已经合并。

  • The prctl() interface for transparent huge pages has also made it in to this release.

    透明巨型页面的 prctl() 接口也已包含在此版本中。

  • The perf utility now handles "N" (debugging) symbols produced by the Rust compiler. It also has a new "X" modifier that prevents events from being grouped automatically.

    perf 实用程序现在处理由 Rust 编译器产生的 "N"(调试)符号。它还有一个新的 "X" 修饰符,可以防止事件自动分组。

  • There were 190 exported symbols removed during this merge window, and 353 added; see this page for the full list.

    在此合并窗口期间,有 190 个导出的符号被移除,同时添加了 353 个;请查看此页面获取完整列表。

  • There were also ten new kfuncs added: bpf_dynptr_from_skb_meta(), bpf_kfunc_multi_st_ops_test_1(), bpf_kfunc_ret_rcu_test(), bpf_kfunc_ret_rcu_test_nostruct(), bpf_strcasecmp(), bpf_task_work_schedule_resume(), bpf_task_work_schedule_signal(), bpf_xdp_pull_data(), scx_bpf_cpu_curr(), and scx_bpf_locked_rq().


Linus Torvalds seemed pleased that this merge window didn't introduce any problems on his test machines; other than that happy occurrence, the 6.18-rc1 release was fairly typical. 6.18 is expected to become the next long-term support release of the kernel. If the release-candidate process takes the same amount of time as previous releases, 6.18 proper will likely be released around the end of November.


Linus Torvalds 似乎很高兴这个合并窗口在他的测试机器上没有引入任何问题;除了这个令人高兴的情况之外,6.18-rc1 发布版本相当典型。预计 6.18 将成为下一个长期支持版本的内核。如果发布候选过程所需时间与之前的发布相同,那么 6.18 正式版本可能会在 11 月底左右发布。

【声明】内容源于网络
0
0
跨境人老刘
跨境分享录 | 长期输出专业干货
内容 40156
粉丝 3
跨境人老刘 跨境分享录 | 长期输出专业干货
总阅读221.0k
粉丝3
内容40.2k