Linux 内核创始人 Linus Torvalds 发布了一组针对内核页缓存争用问题的补丁,并公开说明这些代码主要由 Anthropic 的 Claude Code 在他的指导下完成。据 ZDNet 报道,这组补丁于 10 月 13 日提交,但仍未进入 Linux 7.3-rc6 主线,何时乃至是否会被合并尚无定论。

Torvalds 在 Git 提交信息中写道:“上述列表背后的代码、测试程序、评审以及本文初稿,都是在我的指导下由 LLM 编码助手(Claude Code)完成的。”ZDNet 称,这是他多年来对 AI 态度从怀疑转向实际使用的最新一步。

补丁要解决的是页缓存中的引用计数争用。当多个线程反复从同一个已缓存文件读取少量数据时,会不断获取和释放支撑数据的 folio 引用,这类引用计数更新需要对共享缓存行做原子写,进而迫使多个处理器核心相互竞争。Torvalds 在一台四核八线程的 Intel Core i7-8565U 笔记本上测试,当八个线程对同一页发起 16 字节 pread() 调用时,按 HITM 统计,该共享缓存行占测得跨核负载的 99.92%。

该问题自 2024 年起即为已知问题,此前的修复尝试均未成功。新补丁改变了内核复用从页缓存中移除的内存的时机:不再立即把内存归还分配器,而是推迟到 RCU 宽限期结束之后,使受 RCU 读侧临界区保护的读者可以把数据直接复制到用户缓冲区,无需获取 folio 引用。

在这一特定测试中,八线程吞吐从每秒约 990 万至 1040 万次读升至 3000 万至 3300 万次,每次读的内核周期从约 2950 降至 725;单线程从约 452 至 454 周期降至 408 至 409 周期。Torvalds 在拉取请求中表示,CPU 更多或不止一个插槽的机器收益应当更大,但没有做更大规模的测量。ZDNet 同时指出,这并不意味着整个 Linux 快了三倍,只是他在布拉格参加 Linux Plumbers 期间自带笔记本上某项小读负载的实验结果。

问题也并未完全解决。推迟内存复用意味着在内核等待 RCU 宽限期期间页面可能处于不可用状态,Torvalds 在提交信息中把内存回收称为“这一系列中解决得最少的部分”。此外,当读取目标尚未映射的用户页时会出现性能回退,新路径要先触发一次失败异常,再退回现有实现。

Torvalds 对 AI 的态度经历了多年演变,并非简单的由反对转为支持。2023 年 12 月,他称 AI 是帮助开发者把工作做得更好的工具,当时他关注的是用 AI 找出缺陷而非编写代码;到 2025 年底,他自称是“AI 作为工具的巨大信徒”,兴趣扩展到代码维护与补丁评审;2026 年 1 月,他开始在一个 Python 音频可视化业余项目中尝试 AI 辅助编码。据 10 月 9 日的报道,他在布拉格举行的开源欧洲峰会上与 Dirk Hohndel 对话时说:“我以前觉得它不太好用,但现在我已经到了真的很喜欢用 AI 的地步。”