AI 资讯聚合 · 开源生态

Linus 首个 LLM 辅助内核补丁系列:同文件并发读吞吐 3 倍、锁争抢降 99%

海外开源生态Linux 内核LLM 辅助开发Linux 内核 · 2026-10-10 · 约2分钟 · 来源:Torvalds 内核仓库 / LWN
Linus 首个 LLM 辅助内核补丁系列:同文件并发读吞吐 3 倍、锁争抢降 99%

Linus Torvalds 在自己的内核仓库里开出一条新分支 noref-filemap-read-with-llm,系列共 10 个补丁,主题是提高页面引用计数的可扩展性。分支最新一次提交(4c0f3697)的时间是 2026 年 10 月 10 日,提交说明末尾写明:代码、测试程序、评审,以及这段说明的初稿,都是在他的指导下由一个 LLM 编程助手(Claude Code)完成的,测量在他的机器上跑。系列里多个补丁带 Assisted-by: LLM 标注。

要解决的是一个老问题:多个线程同时高频小块读同一个文件时,filemap_get_read_batch() 取一次 folio 引用、filemap_read() 再放掉一次,每一次读都要在同一行 struct page 上写两次,构成锁争抢。提交里给的出现场量级是——在他的笔记本(i7-8565U)上做 8 线程、16 字节 pread() 同一页时,那一行占去 99.92% 的 load HITM。做法是把释放推迟、而不是去检测竞态:page cache 里的 folio 离开 i_pages 时打上 PG_rcu_free,等一个 RCU grace period 才回到分配器,于是 rcu_read_lock() 区间内查到的页在整个读过程中不会被复用,读路径可以不带引用直接把数据拷进用户缓冲区。

官方数字:8 线程小块读同一文件,从基准的 9.9–10.4 M 次/秒升到 30–33 M 次/秒,每次读的内核周期从 2937–2975 降到 725–726,load HITM 从 30538 次降到 101 次;单线程场景只从 7.9–8.1 M 升到 8.8–8.9 M,官方自己注明笔记本会因温度降频,应比每次读的成本而不是每秒次数。补丁仍在实验分支,未进 7.4 主线;暂未覆盖 hugetlb、swap cache 与被驱逐 inode 的行内释放。

原文链接:Torvalds 内核仓库 / LWN

核验记录
分支存在性由本机直连核验:git ls-remote https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 返回 refs/heads/noref-filemap-read-with-llm = 4c0f3697118eb3a708ea79175f7f07c43339bfab。提交时间与全部数字取自 kernel.googlesource.com 镜像的分支 log(tip commit 4c0f3697,committer time Sat Oct 10 07:05:38 2026 +0200;系列内各补丁为 10-07~10-10)。本机 cgit 页(git.kernel.org)与 lore.kernel.org 均被 Anubis 反爬拦下,未能直读渲染页;LWN 10-14 报道与 IT之家 10-15 转述称补丁于 10-13 提交,与仓库提交时间不一致,本站以仓库提交时间为准。所有性能数字是 Torvalds 自述在其笔记本上的实测值,本站未复现;「首个」指其首个由 LLM 辅助完成的内核补丁系列,依据是提交说明中本人对 Claude Code 的声明。