LWN:6.16 合并窗口前半部分!

关注了就能看到更多这么棒的文章哦~

The first half of the 6.16 merge window

By Daroc Alden
May 29, 2025
Gemini flash translation
https://lwn.net/Articles/1022512/

截至本文撰写时,面向 6.16 版本的 Linux 内核主线(mainline)仓库已合入了 5,546 个非合并(non-merge changeset)提交。这个数量略少于 6.15 版本总提交数的一半,表明合入窗口正在顺利进行。

请继续阅读我们对 6.16 合入窗口上半程的总结。

和往常一样,LWN 内核源代码数据库为订阅者提供了统计摘要和历史细分数据。以下是截至目前 6.16 合入窗口中最值得关注的一些提交:

Architecture-specific

  • 五级页表(Five-level page-table)支持已在 x86_64 上无条件启用。"英特尔(Intel)和 AMD 的 CPU 都支持五级页表,预计未来将更广泛地采用。所有主流的 x86 Linux 发行版都已启用该功能。"

  • PowerPC 现在支持动态抢占(dynamic preemption)(即在引导时更改内核的抢占设置)。

  • intel_pstate 驱动程序现在注册了一个能源模型,用于在不带对称多线程(symmetric multithreading,也称为超线程,hyperthreading)的混合平台上进行能源感知调度。

  • 用户现在可以通过一个 sysfs 旋钮控制 C1 降级(C1 demotion)(指 CPU 可以独立决定在内核试图进入较低功耗状态时仍保持较高功耗状态的过程),并检索不同 CPU 的容量信息。

  • Arm64 惰性抢占支持和可扩展矩阵扩展支持都已合入。

Core kernel

  • 当使用 SO_PEERPIDFD socket 请求已被回收的线程组领导者的 pidfd 时,即使进程已经退出,内核现在也会提供 pidfd。由于用户空间代码无论如何都需要处理其持有 pidfd 期间进程终止的情况,这应该能简化错误处理。

  • Core dump 现在可以发送到一个现有的 Unix socket,而不再只是写入文件或派生用户模式辅助程序。Christian Brauner 希望这能减少与用户空间 core dump API 相关的 CVE(Common Vulnerabilities and Exposures,通用漏洞披露)数量。

  • io_uring 现在可以用于创建管道。

  • Futex 现在支持 NUMA(Non-Uniform Memory Access,非统一内存访问)和内存策略(mempolicy)。这使得可以更好地控制 futex 在内存中的位置,以便将它们放置在靠近使用它们的进程的地方。

  • 现在有一个命令行选项,用于启用或禁用实时任务的组调度。

Filesystems and block I/O

  • bfs 和 omfs 文件系统现在使用新的 mount API。这个于 2019 年添加的API,内核的许多文件系统一直在缓慢采用。

  • 新的 sysctl 旋钮, vfs_cache_pressure_denom ,间接控制系统在面临内存压力时保留的 dentry 缓存条目('dentry')数量。具体来说,在内存回收事件中回收的 dentry 的最小比例是 1/vfs_cache_pressure_denom ,因此设置更高的值会减少保证被回收的缓存条目数量,留下更多的缓存条目根据自身价值被逐出或保留。

  • 区域化 loop 块设备(Zoned loop block devices)可以使用现有文件系统上的多个文件来模拟通用块设备,现在已经可用并已文档化。

  • 在许多 bcachefs 变更中,该文件系统现在支持仅在系统连接交流电源(AC power)时执行再平衡(rebalance)操作。

  • XFS 支持原子写入(atomic writes)。LWN 最近报道了关于在更多文件系统中支持原子写入的讨论。

  • EROFS 现在可以利用英特尔 QAT 硬件加速。

  • 通过一系列优化,ext4 获得了“惊人的”性能改进。

  • 古老的 uselib() 系统调用,它已经废弃一段时间,现已移除,希望在此过程中不会破坏任何用户空间应用程序。这个系统调用用于映射禁用写访问的动态库,以便它们可以在不同程序之间共享。如今,这个用例可以通过调用带有适当标志的 mmap() 来实现。

  • 块层维护者最终消除了 bounce buffering;详情请参见这篇文章。

Hardware support

  • 时钟

    : S32G NXP SoC 上的系统定时器模块,EcoNet HPT 定时器,以及 Analog ADP5055 数模转换器。

  • GPIO 和引脚控制

    : EcoNet EN751221 SoC,SG2044 SoC,loongson,mc33xs2410 high-side 开关,rzg2l-gpt 脉冲宽度调制控制器,max77759 companion PMIC,VeriSilicon BLZP1600 GPIO 接口,以及 Spacemit K1 SoC。

  • 硬件监控

    : int340x 上的 PTC 支持,Airoha EN7581s,以及 IPQ5018 SoC。

  • 输入设备

    : AMD HID2,Renesas RZ/G3Es,Rockchip RK3528s,以及 Samsung Exynos Autov920 处理器。

  • 多媒体

    : MT8192 Spherion 和 MT8186 Corsola SoC。

  • 杂项

    : SpacemiT K1 SoC 上的 SDHCI OF。

  • 网络

    : Qualcomm IPQ5018 WiFi 芯片组。

  • 电源管理

    : Pegatron Chagall 电池,Maxim MAX8971 电池充电器,华为 Matebook E Go 充电器,Dimensity 1200 MT6893s,SM4450 电源域,RK3562 SoC,Allwinner H6/H616 PRCM PPU,以及 TI TPS65214 集成电源管理芯片。

  • 音频

    : AMD ACP 7.x,Cirrus Logic CS35L63 放大器和 CS48L32 音频处理器,Everest Semiconductor ES8375s 和 ES8389s,Longsoon-1 AC'97 音频编解码器,NVIDIA Tegra264 SoC,Richtek ALC203 和 RT9123 编解码器,Rockchip SAI 控制器,Intel WCL,以及 DJM-V10 混音器。

Miscellaneous

  • 文件系统和 EFI 变量现在可以在挂起(suspend)和休眠(hibernate)操作期间,尽力而为地被冻结(并在之后解冻)。

Virtualization and containers

  • 控制组(Control group)的递归统计共享跟踪(shared tracking)被发现无法很好地扩展到大量控制组的情况,因此已被移除。

  • 虚拟机(VM)现在可以与由安全 VM 服务模块(Secure VM Service Module)模拟的 TPM 设备进行通信。

Internal kernel changes

  • 定时器 API(timer API)进行了一些重要的重命名。名称不规范的函数已转换为使用 timer_ 前缀。例如, init_timer_key() 现在是 =timer_init_key()=。预计在合入窗口接近结束时将有另一次大型重构。

  • Rust 模块现在可以使用configfs。

  • nova DRM 驱动程序的桩驱动程序(Stub drivers)继续进入主线。

  • 虚拟文件系统(VFS)接口已被清理,以减少令人困惑的名称泛滥。

  • struct address_space_operations

     中的 writepage() 方法已完全移除,及其剩余的使用也一并移除。

  • resctrl 文件系统接口现已移到自己的目录,这是使其能够在多种架构上使用的下一步。

  • kernel-doc 脚本其起源早于 Git 时代,用于在文档构建过程中从内核源代码中提取文档。在 6.16 版本之前,它是一个充满难以理解的正则表达式的可怕的 Perl 脚本。这个脚本已被替换为 Python 版本,后者更好地集成到 Sphinx 构建系统。正则表达式仍然难以理解,但整个脚本将更易于维护。

  • 内核的构建脚本曾经有一个单独的选项用于指定禁用警告的编译器标志,原因在于选项解析代码的一些不灵活性。现在, cc-disable-warning 选项不再需要;它可以用正常的 cc-option 替代。

  • 有一个新的 DMA 映射 API,旨在提供 scatterlist 的替代方案。虽然它花了一些时间才最终确定,但这个新的 API 应该能为一些高带宽 DMA 设备提供更好的性能。

  • sched_ext 的空闲 CPU 选择逻辑现在可以在更多情况下应用基于拓扑的优化,包括对具有 CPU 亲和性(CPU affinities)的任务。

目前在 linux-next 中还有 5,379 个非合并提交正在等待合入,因此肯定还有更多新的内核特性即将到来。合入窗口预计于 6 月 8 日关闭。

和往常一样,我们将在合入窗口关闭后发布另一篇总结。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值