原始出处: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)越界访问
- 抑制内存不足时的异常警告
- 优化 GC 可见元组发布顺序
- 修复 ipset 列表类型元素漂移问题
SCTP 协议修复
Cookie 验证:在使用前严格验证 cookie 认证状态,移除对等体时清除新传输信息。
ASCONF 块使用后立即释放:修复 cached ASCONF 块的使用后立即释放问题,避免内存竞争和崩溃。
3. GPU 驱动:AMD/NVIDIA/Intel
AMDGPU 深度修复
UVD 解码:
- 限制 UVD 消息维度不超过 4096
- 修复 H.264/HEVC 解码的缓冲区大小计算
- 实现 VCE 3 的 insert_end 功能
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. 恢复稳定性:通过重开未完善的功能
- 2. 修复已知问题:大量驱动和子系统修复
- 3. 保持节奏:按计划发布,不因问题拖延
"虽然不完美,但这是处理"代码未准备好就出现问题"的正确方式。人们稍后会再次尝试。"这是一个成熟的开源项目的标志:宁可稳定,不愿冒险;宁可重开,不愿留下隐患。
---
参考资料:
- 1. LWN.net: https://lwn.net/Articles/1089033/
- 2. Linux Kernel Mailing List: https://lore.kernel.org/lkml/
- 3. Linux 7.2 官方源码:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
本文基于 Linus Torvalds 官方发布邮件和 LWN.net 整理,旨在为中国开发者提供快速理解和参考。实际升级建议请参考具体硬件和应用场景。
作者观点不代表任何厂商立场,仅供技术讨论参考。

点评与讨论
GITHUB 账号登录有疑问、有补充、有不同看法?欢迎留下你的点评,一起把技术聊透。👇