原始出处:Linus Torvalds 官方发布邮件 (LWN.net)
发布日期:2026 年 8 月 16 日
作者:Linus Torvalds (Linux 内核维护者)
LWN 链接:https://lwn.net/Articles/1089033/
翻译:LeisureLinux
关键词:Linux 7.2、内核发布、DRM 重回退、稳定性修复、性能优化

引言:又一次"比预期更大"的发布周

正如 Linus Torvalds 在邮件开头所说:

"这个发布周的代码量——再一次——比我希望的要大得多,但是,既然有了"新常态"这件事,如果因为这个问题而延迟发布,我们可能永远都无法发布了。"
这是 Linux 7.2 发布的基调:虽然存在一些不太完美的代码重开,尤其是 DRM 调度框架相关的大规模重开,但这是处理"代码未准备好就出现问题"的正确方式

Linux 7.2 虽然包含多个较晚的重大重开,但它仍是一个典型的稳定内核更新周期,包含了大量驱动修复、网络子系统改进以及架构相关的补丁。以下是本次发布的深度解读。

---

一、发布概况:数据与趋势

补丁统计

类别补丁数量占比
驱动修复100+~60%
网络子系统30+~15%
架构文件15+~8%
perf 核心10+~5%
其他15+~12%

重要特性/问题

  • DRM 调度框架大规模重开:19 个回退补丁
  • Ceph 文件系统优化:多篇文章涉及挂载 ID 映射、MDS 随机选择
  • SCTP 协议修复:cookie 验证、ASCONF 块使用后立即释放
  • AMD GPU 驱动:UVD 解码、VCE 3、ASPM 检查、NBIF 低功耗
  • perf 工具修复:组 leader 使用后立即释放、终止退出事件
  • 网络子系统:ipvs、netfilter、tc 调度器、VXLAN 多个修复
---

二、重大事件:DRM 调度框架的大规模重开

问题背景

在 Linux 7.2 的提交周期中,DRM 调度框架进行了重大重构,试图简化调度策略,将 FIFO、RR 和 fair 策略合并为单一调度器。这次改动涉及:

  • 移除 drm_sched_init_args->num_rqs 字段
  • 将运行队列单例嵌入到调度器结构体中
  • 切换到默认的 fair 调度策略

重开范围

这次修改影响了整个 DRM 生态,包括:19 个回退补丁覆盖 drm/sched、drm/xe、drm/msm、drm/amdgpu、drm/nouveau、drm/v3d、drm/panthor/panfrost、drm/etnaviv、drm/imagination、drm/lima、accel/ethosu、accel/rocket、accel/amdxdna 等多个子系统和驱动。

技术原因:这些改动破坏了现有驱动对运行队列配置和调度策略的依赖,导致某些组合下出现死锁、资源泄漏或功能异常。

Linus 的判断

"虽然 DRM 重开是这里最大的补丁,但这里还有很多遍布各处的小修复。"
这次重开体现了 Linux 内核的原则:为了稳定性,宁可推迟新功能,也不要在未经验证的情况下进入主线

---

三、核心子系统深度解析

1. 文件系统:Ceph 与 OVL

Ceph 关键修复

挂载 ID 映射优化:在 SET_LAYOUT ioctl 操作中正确挂载 ID 映射,避免非特权用户无法访问 Ceph 文件的问题。

MDS 随机选择就绪性:修复 MDS(元数据服务器)随机选择的就绪性判断逻辑,改善负载均衡和故障转移效果。

OverlayFS 改进

解决跨用户命名空间完成挂载时的警告问题,提高了 Docker/Kubernetes 容器化部署的兼容性。

2. 网络子系统:大规模稳定性修复

IPVS 与 Netfilter 优化

IPVS 连接跟踪

  • 添加 totalconns 统计后端连接数
  • 正确更新过载标志
  • 防止 IHL(IP Header Length)越界访问
Netfilter 规则优化
  • 抑制内存不足时的异常警告
  • 优化 GC 可见元组发布顺序
  • 修复 ipset 列表类型元素漂移问题

SCTP 协议修复

Cookie 验证:在使用前严格验证 cookie 认证状态,移除对等体时清除新传输信息。

ASCONF 块使用后立即释放:修复 cached ASCONF 块的使用后立即释放问题,避免内存竞争和崩溃。

3. GPU 驱动:AMD/NVIDIA/Intel

AMDGPU 深度修复

UVD 解码

  • 限制 UVD 消息维度不超过 4096
  • 修复 H.264/HEVC 解码的缓冲区大小计算
  • 实现 VCE 3 的 insert_end 功能
ASPM 检查:检查 dGPU 主机链路的 ASPM(主动状态电源管理),修复 NBIF 6.3.1 L1 低功耗模式不工作的问题。

Intel Xe 驱动

资源分配

  • 为控制单元分配独立缓冲对象
  • dGFX 上在 VRAM 中分配
  • 使用未缓存映射
---

四、架构特定修复

RISC-V 架构

  • ZBB 字符串长度修复:防止 strnlen 读取超过计数边界
  • ftrace 修改调用修复:在 kprobed 函数上修复 ftrace_modify_call 失败
  • hwprobe 注册:在 usermode 之前注册未对齐探针

ARM64 架构

  • Tegra 194 EL2 虚拟中断:添加 EL2 虚拟中断定时器
  • Apple T8122 I2C 资源:修复 I2C 资源配置错误

PowerPC 架构

Big-endian 64-bit PowerPC 现在使用 ELFv2 系统 ABI,需要 Linux 内核 3.13 或更高版本。

---

五、perf 工具链修复

组 leader 使用后立即释放:修复 sibling detach 后组 leader 的使用后立即释放问题。

退出事件拒绝:拒绝已退出的事件作为组 leader。

---

六、升级建议与最佳实践

适合升级的场景

场景建议
生产服务器如果当前内核稳定且无已知问题,可考虑等待 7.3 LTS
开发测试强烈建议升级,获取最新硬件支持和性能优化
DRM 用户如果依赖 GPU 驱动,建议等待稳定性确认
嵌入式设备根据硬件兼容性测试结果决定是否升级

检查清单

  • [ ] 检查当前内核版本和运行状态
  • [ ] 确认关键硬件(GPU、网卡、存储控制器)兼容性
  • [ ] 准备回滚方案
  • [ ] 备份重要数据
  • [ ] 测试关键应用在新内核下的表现
---

七、结论:Linux 7.2 是"必要的回归"

Linux 7.2 虽然包含多次大规模重开,但它是一个维护性发布而非功能性发布。它的目标是:

  1. 1. 恢复稳定性:通过重开未完善的功能
  2. 2. 修复已知问题:大量驱动和子系统修复
  3. 3. 保持节奏:按计划发布,不因问题拖延
正如 Linus 所说:
"虽然不完美,但这是处理"代码未准备好就出现问题"的正确方式。人们稍后会再次尝试。"
这是一个成熟的开源项目的标志:宁可稳定,不愿冒险;宁可重开,不愿留下隐患。

---

参考资料

  1. 1. LWN.net: https://lwn.net/Articles/1089033/
  2. 2. Linux Kernel Mailing List: https://lore.kernel.org/lkml/
  3. 3. Linux 7.2 官方源码:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
---

本文基于 Linus Torvalds 官方发布邮件和 LWN.net 整理,旨在为中国开发者提供快速理解和参考。实际升级建议请参考具体硬件和应用场景。

作者观点不代表任何厂商立场,仅供技术讨论参考。