LWN:6.14合并窗口第一部分!

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

The first part of the 6.14 merge window

By Jonathan Corbet
January 23, 2025
Gemini-1.5-flash translation
https://lwn.net/Articles/1005651/

截至本文撰写之时,已有超过 4300 个非合并变更集 (non-merge changeset) 被拉取到 6.14 版本的主线仓库 (mainline repository) 中。此轮的许多拉取请求 (pull requests) 中都提到,这段时间的活跃度相对较低,这可能是由于节日的缘故。因此,这 4300 个变更集可能比以往更接近合并窗口 (merge window) 数量的中位。目前合并的大部分工作看起来更像是增量改进 (incremental improvements),而非重大新举措 (major new initiatives),但其中仍然包含许多有趣的变更。

到目前为止已合并到主线中的一些最重要变更包括:

架构特定 (Architecture-specific)

  • PowerPC 架构已获得延迟抢占 (lazy preemption) 支持(https://lwn.net/Articles/994322)。

  • 使用 AMD 安全加密虚拟化 (Secure Encrypted Virtualization, SEV) 功能的 X86 系统现在支持针对虚拟机的安全时间戳计数器 (secure timestamp counter)。简而言之,它允许虚拟机读取无法被主机操纵的时间戳。

  • AMD 的 CPU 内核能耗计数器 (energy-use counters) 现在已在 perf 事件子系统中得到支持。

核心内核 (Core kernel)

  • `pid_max` sysctl 旋钮 (knob) 设置了进程 ID (process ID) 可使用的最大数值;它具有限制 PID 值大小和限制可能存在的进程总数的作用。在 6.14 版本中,`pid_max` 现在与 PID 命名空间 (PID namespace) 绑定,允许在容器内独立设置。它是分层设置的,因此任何命名空间都不能将其 `pid_max` 设置为高于其任何父命名空间的值。有关此更改的更多信息,请参见此提交(https://git.kernel.org/linus/7863dcc72d0f)。

  • 当程序使用 `execveat()` (https://man7.org/linux/man-pages/man2/execveat.2.html) 启动时,`/proc` 中将显示存储在其目录项中的已执行文件的名称,而不是(如当前内核中所做的那样)使用的文件描述符编号。有关此更改的详细信息,请参见https://lwn.net/Articles/999770/ 此文章。

  • 新的“dmem”控制组控制器 (control-group controller) 规范了对设备内存 (device memory)(例如图形卡上的内存)的访问。文档稀少,但有一个简短指南 https://docs.kernel.org/next/admin-guide/cgroup-v2.html#dmem) 可用于此控制器的配置。

文件系统和块 I/O (Filesystems and block I/O)

  • pidfdfs 文件系统现在可以创建文件句柄(当由 `name_to_handle_at()` (https://man7.org/linux/man-pages/man2/open_by_handle_at.2.html) 调用请求时;这些句柄可用于即使在 32 位系统上也为进程创建系统范围唯一的标识符。现在也可以绑定挂载 pidfds。

  • `statx()` (https://man7.org/linux/man-pages/man2/statx.2.html) 系统调用现在可以返回文件读取操作所需的对齐方式;该对齐方式可能与写入要求不同,某些应用程序可以从这两方面的信息来受益。

  • 一些 Btrfs 配置在读取特定块时为文件系统提供了多个设备的选择。在当前内核中,读取进程的 PID 用于做出该决定,但这会在单读取器工作负载中将所有读取流量集中到单个设备上。6.14 内核添加了几个新的策略选项,可以实现循环读取平衡 (round-robin read balancing),或者只是将读取集中到特定设备上。有关启用循环读取的说明,请参见https://git.kernel.org/linus/6d7a9154955e 这个提交,或者有关设置特定设备的说明,请参见https://git.kernel.org/linus/c86aae73bd58 此提交)。

  • bcachefs 文件系统在错过 6.13 开发周期后进行了许多更改;其中包括一个主要的磁盘格式更改,这将需要一个“大而昂贵”的格式升级。这些更改包括自我修复改进 (self-healing improvements)、文件系统检查时间“提高了多个数量级”等等;有关更多信息,请参见 https://git.kernel.org/linus/2622f2904170 此合并信息)。

  • md-linear 设备映射器目标 (device-mapper target)(它基本上连接块设备)在 6.8 中被移除,因为它已弃用且无人维护。不过,似乎仍然有用户使用此目标,因此它已恢复到 6.14 版本中。此更改也标记为稳定更新,因此也应传播到旧内核。

硬件支持 (Hardware support)

  • *时钟 (Clock)*:Qualcomm X1P42100 图形时钟控制器、Qualcomm QCS615 和 SM8750 全局时钟控制器、Qualcomm SM8750 TCSR 时钟控制器、Qualcomm SM8750 显示时钟控制器、Qualcomm IPQ CMN PLL 时钟控制器和 Qualcomm SM6115 低功耗音频子系统时钟控制器。

  • *图形 (Graphics)*:Synopsys Designware MIPI DSI 主机 DRM 桥接器和 ZynqMP DisplayPort 音频接口。

  • *硬件监控 (Hardware monitoring)*:TI TPS25990 监控接口、英特尔通用冗余电源监控器和 Analog Devices ADM1273 热插拔控制器。

  • *其他 (Miscellaneous)*: NVMe PCI 端点功能目标、Loongson 内存控制器、AMD AI 引擎、意法半导体 LED1202 I2C LED 控制器、TI LP8864/LP8866 4/6 通道 LED 驱动器、KEBA SPI 接口和 Airoha EN7581 SoC CPU 频率控制器。

  • *网络 (Networking)*:恩智浦 S32G/S32R 以太网接口、瑞昱 8922AE-VS PCI 无线网络适配器和 QNAP 微控制器单元核心。

其他 (Miscellaneous)

  • 内核存储库中的 `samples` 目录包含一个新程序 `mountinfo`,它演示了 `statmount()` 和 `listmount()` (参见 https://lwn.net/Articles/950569/) 系统调用的用法。

  • 当 Rust 1.84.0(或更高版本)可用时,内核中的 Rust 代码将使用 `derive(CoercePointee)` (https://github.com/rust-lang/rust/issues/123430) 功能进行指针强制转换。该功能处于 Rust 语言稳定化轨道上,它的使用是朝着在内核中仅使用稳定 Rust 功能迈出的重要一步。https://git.kernel.org/linus/e3610441d1fb 这个合并信息展示了如何使用它。

网络 (Networking)

  • RxRPC

     协议实现现在可以使用巨大的 UDP 数据包以获得更高的吞吐量。还添加了对 RACK-TLP 丢包检测算法的支持。

  • 新增了一个每个网络命名空间可配置的 (per-network-namespace) sysctl 旋钮——`tcp_tw_reuse_delay`——它控制系统在重用已关闭 TCP 套接字的端口号之前等待的时间;其值为毫秒。

  • 现在可以选择使用接口 MAC 地址还是 PHY 作为 PTP 时间戳的提供者;(此合并信息) 提供了一些如何执行此操作的示例,这些示例大概对熟悉此类事物的人来说是可理解的。

  • 现在支持 IPsec IP-TFS/AGGFRAG (RFC 9347)。

安全相关 (Security-related)

  • “xperms” SELinux 功能允许策略针对特定的 `ioctl()` 调用或 netlink 消息。内核文档中缺少此信息,但(此 wiki 页面) 有一些信息。

内部内核更改 (Internal kernel changes)

  • 内核的注释系统 (annotation system) 用于添加有关代码的信息(例如,“此跳转在没有 retpoline 的情况下是安全的”),以前会为每种注释类型创建一个不同的 ELF 节(section)。现在有一个(通用的注释基础设施) 将所有这些信息收集到同一个节中。

6.14 合并窗口预计将持续到 2 月 2 日,6.14 版本很可能在 3 月 23 日发布。这个时间安排似乎比以往更确定,仅仅是因为它会最大限度地增加 LWN 的编辑痛苦,因为Linux 存储、文件系统、内存管理和 BPF 峰会 将于 3 月 24 日开始。不管怎样,我们将度过难关,并告诉您结果如何。

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

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

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

5ba654f0e7fa7570913e16b5b9f959fd.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值