关注了就能看到更多这么棒的文章哦~
The first half of the 6.9 merge window
By Jonathan Corbet
March 14, 2024
ChatGPT translation
https://lwn.net/Articles/965141/
截至撰写本文时,已将超过 4900 个非合并的变更集合并到了主线内核以准备发布 6.9 版本。这项工作包括了内核代码各处的一系列常规更改;接下来是对 6.9 合并窗口的第一部分中合并的最重要工作的摘要。
架构相关
支持英特尔 灵活返回和事件传递(FRED, Felxible Return and Event Delivery) 机制已合并。FRED 改进了底层事件传递,使代码更简单、可靠;有关更多信息,请参阅此变更日志和此文档提交。
核心内核已增加对运行 AMD 安全嵌套分页(SNP, Secure Nested Paging)guest 的支持,这是 AMD 保密计算解决方案的一部分。完全支持需要 KVM 进行改动,显然,这部分已推后到 6.10 版本。
内核现在可以利用 GCC 的命名地址空间(named address spaces)功能来优化对 per-CPU 数据的访问。
最新的 x86 硬件漏洞是 "寄存器文件数据采样(register file data sampling)",影响的是英特尔 Atom CPU。已合并缓解措施;详见此文档提交。
核心内核
现在内核能够使用 pidfds 来创建和指向线程,而不仅仅是线程组中的为首线程。可以使用新的
PIDFD_THREAD
标志与pidfd_open()或CLONE_THREAD
与clone() 或 clone3() 来访问此功能。线程级 pidfds 的语义与进程级 pidfds 稍有不同;详情请参阅此合并日志。新增了一个用于 pidfds 的内核虚拟文件系统;有关详情,请参阅此文章。
合并了管理 BPF 程序和用户空间之间共享内存的BPF 专用共享内存子系统。为支持使用此内存,cond_break 宏的更改也已合并。
文件系统和块设备 I/O
zonefs 和 hugetlbfs 文件系统现在支持 ID 映射挂载(ID-mapped mounts)。
新的
RWF_NOAPPEND
标志用于 pwritev2(),即使文件以 append-only 模式打开,也可以提供写入的偏移量。此标志使得pwritev2()
的行为与 POSIX 中预期的pwritev()
一致。旧的 ntfs 文件系统实现已被删除,改用 ntfs3。
新的
FS_IOC_GETUUID
ioctl() 命令将检索指定文件系统的 UUID;这是 (之前) 仅适用于 ext4 的通用功能的版本。另一个新命令,FS_IOC_GETFSSYSFSPATH,将检索挂载在/sys/fs
下的文件系统的位置。io_uring 子系统获得了截断(truncate)文件的能力。
NFSv4 服务器的管理员现在可以撤销文件的打开和锁定状态。
硬件支持
其他: StarFive JH8100 外部中断控制器。
网络: RENESAS FemtoClock3 PTP 时钟、Qualcomm QCA807x PHY、Marvell Octeon PCI 终端 NIC、esd electronics gmbh CAN-PCI(e)/402 控制器和 Freescale QUICC 多通道控制器。
其他
内核现在使用 Rust 的版本 1.76.0。此更新稳定了内核使用的两个特性(
const_maybe_uninit_zeroed
和 ptr_metadatabyte_sub
,可以替代不稳定的ptr_metadata
),使得需要的不稳定功能的列表更短了一些。还有其他各种与 Rust 相关的更改;有关详情,请参阅此合并日志。对于如何使用二分法来跟踪内核回归的细节感兴趣的人可能希望查看这篇新文档,该文档深入覆盖了这个主题。
网络
已经进行了大量工作来减少网络子系统的核心 RTNL 锁的使用,并总体减少争用(contention)。
安全相关
已合并了BPF 令牌机制,该机制允许对 BPF 操作进行细粒度的权限委派。此合并尝试在 6.8 版本中进行,但最终被回滚了;这次似乎可能会保留下来。这个变更日志提供了此工作当前状态的概述。
内核内部变更
旨在最终取代 tasklet的BH 工作队列机制已合并。
定时器子系统已经进行了广泛的重构,以更好地选择在哪个 CPU 上运行已过期的定时器。有关此更改的更多信息,请参阅此合并变更日志。
UBSAN 签名溢出检查器已恢复,旨在帮助推动编译器开发朝着更好的有符号环绕警告方向发展。
6.9 合并窗口预计将持续到 3 月 24 日。仍有大量工作等待合并到主线;一如既往,一旦合并窗口关闭,该工作将在此处进行总结。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~