Linux 内核补丁进入主线前要过维护者这关,而提交信息里出现 AI 工具署名,在这个代码基上是头一遭。10 月 11 日,Phoronix 的 Michael Larabel 在等 Linux 7.3-rc7 的功夫发现:Torvalds 自己的仓库里多了一个叫 noref-filemap-read-with-llm 的分支——那棵树平常只躺一个 master,分支名直接带 llm,藏的是一条八补丁系列。10 月 14 日 LWN 撰文跟进,封面信的 Tools 一节写明了来历:代码、测试程序、问题清单背后的审查、乃至信件初稿,均由 Claude Code 在 Torvalds 亲自指导下完成,基准数字跑在他自己的机器上。
这不是「AI 替人写内核」的戏码,分工写在明处:人定方向、审清单、担署名,智能体出草案与苦力活。真正值得拆的是补丁本身——它碰的是 Linux 内存管理一个挂了很久的瓶颈,而解法恰好示范了人机协作里最舒服的那种姿势:苦活杂活交给工具,判断留给人。
一根缓存线,八个核在抢
问题 2024 年就有人提出:多个线程反复读同一个缓存文件的小片段时,每次读都要给背后的 folio(一组一起管理的内存页)取放一次引用,两次原子写都砸在同一根缓存行上——核与核之间开始抢这条线。Torvalds 那台四核八线程的 Core i7-8565U 上,这根线吃掉了 99.92% 的跨核负载未命中。以前的免引用设计不是没人想过,难在拷贝完成后校验看不见「页被释放又在同一槽位重插」这类竞态。
这一版换了个路子:不检测竞态,直接消掉。folio 离开页面缓存后不立即交还分配器,等一个 RCU 宽限期;读侧在临界区内直接往用户态拷数据,不取引用、不设中转缓冲。缺页、数据不全、用户缓冲故障等异常条件,一律回退老路径。
数字与未结的账
读数很扎眼:八线程对同一页发 16 字节预读,吞吐从每秒约 990 万到 1040 万次涨到 3000 万到 3300 万次;单次读取的内核周期从 2937 到 2975 降到 725 到 726;跨核争抢指标从 30538 掉到 101。单线程只省一成上下(452 到 454 周期降到 408 到 409),Torvalds 自己预期多路服务器上收益更大——但没人测过。
账没算平的地方他也标了:延迟释放的内存会计是全系列「解决得最差」的部分,等宽限期的页对分配器不可见,可能诱发提前 OOM(六补丁版本在 2GiB 虚拟机压力测试里 4 核与 8 核上就触发过杀手;完整版加了「单 CPU 排队超 1024 页就强制加速宽限期」的阀门才算跑完)。另有一处回归:读尚未映射的用户页会先吃一次失败异常再走老路,16 字节单线程读从约 4150 周期涨到约 6550。测试还关了缓解措施与 HARDENED_USERCOPY。系列基于 7.3-rc6,未合入,瞄准 7.4 合并窗口——能否进主线,看内存管理维护者与多核服务器上的复测。
放进台谱里看
站点追 Claude Code 这条产品线有日子了,从 1903 的 2.1.299(空闲压缩、插件化)到各类编码智能体横评。本篇的分量不在版本号,在署名位置:内核社区吵了一年「AI 生成补丁算不算贡献」,Torvalds 用一次实操给出了可参照的中间路线——工具可以用,苦力可以交,方向、审查与担子留在人。他 7 月在邮件列表就表过态:Linux 不是那种反 AI 的项目,AI 是工具,和其他工具一样,而且明显有用。同周末他还用 LLM 清理 assoc_array 库,顺手翻出三个 2013 年首提交起就藏着的 Bug。
几盆该浇的冷水
全部数字来自一台关了缓解措施的四核笔记本,「约 3 倍」换到 64 核服务器上可能是另一个数,方向大概率不变,幅度无人背书。内存会计未结、回归存在、未合入——把它读成「Linux 已经 AI 化」是过度演绎,准确的读法是「最难伺候的代码基,开始给智能体发试用期工牌」。另一盆冷水留给看热闹的厂商:这是「人主导、智能体执行」的样板间,不是自主工程的样板间,拿它佐证「AI 能独立写系统软件」会翻车。
给维护者团队一条可以直接抄的规矩:学这次封面信的 Tools 一节——用了什么工具、干了哪几段活、哪些结论是人自己核的,写进提交信息。披露做在明处,审查成本不升反降,这是内核社区用三十年磨合出的信任机制,智能体时代照样成立。