Linus Torvalds 在 2026 年 10 月正式推出了 Linux 7.3 内核。从表面数据看,这是一次规模空前的版本更迭:代码库并入了来自 3,021 位开发者的 18,765 个非合并提交,其中首次贡献者达到 807 位,多项规模指标均刷新了主线历史纪录。然而,在庞大的代码合并规模背后,Linux 7.3 并未带来预期的性能红利,反而在核心基础设施层暴露出多项严重的工程妥协与回归缺陷。

核心判断在于,Linux 7.3 并非一次稳健的性能跃进,而是一次代码审查带宽过载下的“带伤冲线”。原生 EEVDF 调度器为应对多核扩展性而强推的重构,直接在云端实例上砸出了两位数的延迟漏洞;存储模块缺乏充分锁机制的功能跃进,更给生产环境留下了数据损毁与信息泄露的隐患。

组调度重构翻车:宣称的多核优化遭遇负优化

Linux 7.3 最受瞩目的底层变动是 CFS/EEVDF 调度器的组调度机制重塑。随着服务器单机核心数向数百核演进,NUMA 架构日益复杂,主线内核试图通过实施“扁平化挑选”(Flatten the pick)并引入单一运行队列重构(commit 85570f10a4c6),解决深层 cgroup 嵌套下的任务调度与权重分发开销。

调度队列拍平为单通道后,巨量任务在瓶颈处剧烈积压(剖面示意)
调度队列拍平为单通道后,巨量任务在瓶颈处剧烈积压(剖面示意)

但基准测试给出的反馈却与预期背道而驰。在现代云原生核心负载下,这一改动引发了严重的任务排队与尾延迟退化。基准测试工具 schbench 的数据暴露了这一缺陷:

AWS Graviton3 平台 schbench p99 尾延迟退化实测 m=16, t=16 并发测试 基线: 662,869 µs 7.3: 969,557 µs (+46%) m=64, t=4 并发测试 基线: 730,453 µs 7.3: 942,251 µs (+29%)

在 AWS Graviton3 实例上,schbench 在 m=16, t=16 场景下的 p99 延迟由 662,869 µs 暴增至 969,557 µs,尾延迟上升约 46%;在 m=64, t=4 配置下同样由 730,453 µs 飙升至 942,251 µs,退化幅度达 29%。硬件退化并非 ARM 架构独有。在包含 256 核 512 线程的双路 AMD EPYC Zen 4c 系统上,开启新引入的 concur 权重模式后,tbench 网络并发吞吐量在 512 至 2,048 客户端压力下,整体下降了 5.5% 至 6.3%。

调度器把运行队列拍平以期削减层级锁,却在数百核竞争中把排队锁死成了单点瓶颈。

与此同时,备受关注的可编程调度器 sched_ext 在 7.3 中完成了分层子调度架构,允许将特定 cgroup 子树与 CPU 计算资源委托给 BPF 子调度器。为防范外部调度器介入带来的损耗,内核开发者设置了 scx_has_subs 静态键(static key),确保在未挂载子调度器时彻底剥离热路径簿记开销。这种对性能损耗的高度戒备,与主线 EEVDF 自身盲目重构导致的断崖式下跌,形成了鲜明的讽刺。

  • 风险.部署低延迟微服务与高并发数据库的多核实例,升级 7.3 后将面临严重的长尾请求拥堵,需重新评估调度模式。

驱动与隔离机制:进击的特性与隐秘的安全缺口

如果说调度器的失误属于性能估算偏差,那么文件系统与安全特性的并入,则直接对生产环境的稳定性构成了威胁。

内核沙箱虽封闭了文件路径,却留下了继承描述符的逃逸通道(示意图)
内核沙箱虽封闭了文件路径,却留下了继承描述符的逃逸通道(示意图)

Linux 7.3 的 NTFS3 文件系统实现了对 Windows 备用数据流(ADS)的完整支持,并选择默认开启。但在合并进入主线后不久,该模块接连曝出压缩流访问错误、缺乏通用锁导致的释放后使用(UAF)隐患以及 cluster 泄漏问题,甚至被自动化测试工具 syzbot 触发了内核级通用保护错误(GPF)崩溃。

Linux 7.3 关键特性架构与工程隐患对照 NTFS3 备用数据流 (ADS) 默认状态:主线默认开启 隐患:无符号下溢导致越界读取 运维动作:挂载必须追加 ads=0 涉及 ni_query_ads() 缺陷与 UAF 崩溃 failfs + fchroot() 沙箱 设计目标:拒绝所有 VFS 操作截断路径 硬性门槛:强制要求 no_new_privs 边界限制:不可防御已继承的文件描述符 需要未共享的 fs_struct 防范逃逸

更为致命的是,2026 年 10 月 7 日披露的代码补丁确认,NTFS3 的 ni_query_ads() 函数存在由无符号偏移量下溢导致的内核越界读取(OOB read)缺陷。攻击者可借此诱发内核信息泄露。主线虽然提供了 ads=0 挂载选项作为规避手段,但在默认开启的策略下,未更改配置的企业 NAS 与跨平台存储运维人员已暴露在数据损毁风险中。


与驱动层的粗糙形成对比的是 VFS 隔离机制的演进。7.3 正式引入了恒定失败的文件系统 failfs 与配对的 fchroot() 系统调用。failfs 配合 FD_FAILFS_ROOT 哨兵,通过在内核层面直接拒绝所有文件操作,强制截断绝对路径与基于 AT_FDCWD 的相对路径解析。为了防范无特权沙箱的提权逃逸,内核设置了双重安全门槛:调用者必须明确设置 no_new_privs,且必须拥有未共享的 fs_struct。

这项改动极大降低了构建无特权轻量沙箱的门槛,但其边界同样非常狭窄。内核文档明确划清了防线:failfs 无法防范通过进程继承获取的有效文件描述符。如果开发者误将其当成完整的命名空间隔离来替代 mount namespace,极易在应用层留下致命的越界通道。

  • 建议.所有涉及跨平台挂载的存储环境,必须在 /etc/fstab 挂载参数中显式追加 ads=0,避免依赖主线默认配置。

膨胀的合并窗口与主线审查防线

除上述重点模块外,Linux 7.3 还吸纳了虚拟机的活动工作集(Working-Set)追踪、针对 BPF 程序的全局每 CPU 数据区、binfmt_misc 扩展以及 SMB 服务端的一系列调整。

空前规模的代码合并冲垮了内核主线的审查检测带宽(示意图)
空前规模的代码合并冲垮了内核主线的审查检测带宽(示意图)

每一次内核大版本发布,社区往往将突破纪录的提交量与新作者数作为生态繁荣的勋章。然而 7.3 展现出的撕裂感给整个开源生态敲响了警钟:超过 1.8 万个提交涌入主线的同时,未经严格长尾验证的 EEVDF 扁平化逻辑轻易击穿了云基础设施的性能基线,带有明显内存安全隐患的驱动代码也被赋予了默认开启的通行证。

从 AWS Graviton3 到 AMD EPYC,多核硬件的迭代正在大幅拉高调度优化的门槛。在 807 位新作者涌入、代码库狂飙突进的时刻,主线维护者的审查带宽已经被推向极限。Linux 7.3 的教训证明,在底层核心基础设施中,未经多场景实测的优化承诺,往往比保守的旧架构更具破坏力。