网易首页 > 网易号 > 正文 申请入驻

Linus用Claude Code改Linux内核,大神也没兜住代码里的Bug

0
分享至


整理 | Tina

Linus Torvalds 使用 Claude Code 编写 Linux 页面缓存修复补丁,在一项基准测试中将读取吞吐量提升了 23 倍。不过,补丁尚未合入,人类内核审查者就凭借专业直觉,揪出了连 AI 和大神都没能发现的 bug。这再次证明,人类代码审查依然是不可或缺的最终防线。

Linux 的创造者、长期担任首席维护者的 Linus Torvalds 借助 Anthropic 的 Claude Code,着手解决一个困扰开发者两年多的内核性能问题。

周二,他提交了一组包含 10 个补丁的系列。在 Ryzen Threadripper 上运行的合成基准测试中,这组补丁将读取吞吐量提升了 23 倍。

Torvalds 曾花 18 个月运行自己编写的一版有缺陷的修复代码,试图解决页面缓存中的引用计数瓶颈;其他开发者提出的方案也遇到了问题。新补丁从常见的缓冲读取路径中移除了 folio 引用计数操作。不过,Torvalds 提醒说,在真实工作负载中,性能提升会小得多。

在后续审查中,维护者发现补丁存在一个竞争条件。

Kiryl Shutsemau 指出,在filemap_read_rcu_batch()中,如果 folio 被替换后文件大小(i_size)又随之扩展,读取路径就可能把文件中尚未写入的数据返回给用户程序。审查者也对补丁的内存回收机制提出质疑。Torvalds 已将后续开发工作交给 Shutsemau;他此前也研究过这个瓶颈。

用更通俗的话说,读取文件时,内核负责保存这段数据的内存页刚好被换掉,文件大小又紧接着扩展。两件事交错发生后,读取代码可能把文件中新扩出的、实际还没写入内容的部分,当成有效数据交给应用程序。只有这些操作恰好按这个顺序撞在一起时,问题才会出现。

这种由于多线程并发时序不当而导致程序可能产生错误行为的竞争条件,本身就是一种经典的软件 bug。

据 Hardware Busters 报道,在 Torvalds 的 Core i7-8565U 笔记本电脑上进行的 8 线程测试中,跨核加载 HITM 事件里有 99.92% 与 folio 引用计数争用有关。这个瓶颈于 2024 年由 Oracle 工程师 Matthew Wilcox 提出。他长期参与 Linux 内核内存管理开发;问题是在一个客户的工作负载中暴露出来的。

Claude Code 编写补丁

此前,Linux 创始人 Linus Torvalds 曾公开痛批过那些夸大 AI 作用的言论。他当时直言:“每当我看到有人吹嘘‘我们 99% 的代码都是 AI 写的’,我真的会生气。因为我敢打包票,这帮人的代码 100% 都是靠编译器生成的,但他们却从来不这么说。”

然而有趣的是,这位对 AI 泡沫保持高度清醒的开源教主,最近自己也开始动手做实验了。

周日,Phoronix 的 Michael Larabel 发现 Torvalds 的代码树中出现了一个名为noref-filemap-read-with-llm的实验分支。要知道,Torvalds 的代码树里极少保留主开发分支(Mainline)以外的内容。

这组基于 Linux 7.3-rc6 的补丁一共包含 8 个提交(Commits),并在提交记录中坦白、清晰地标注了 Anthropic 旗下的开发者工具 Claude Code 参与的具体工作。


根据 Torvalds 的说法,这组补丁的代码、测试程序,甚至提交前的初步审查工作,都是 Claude Code 在他的指导下完成的。性能测量则由他在自己的机器上进行。

也就是说,尽管这组补丁在提交前通过了 AI 的自查与审查,但其中隐藏的竞争条件 Bug,最终依然是在合入主分支前,被社区里的人类维护者给揪了出来。


这组补丁解决的是一个棘手的内核并发问题。

此前的优化方案试图在“不持有 folio 引用”的情况下直接复制数据,并在复制完成后再检查数据的有效性。但这种做法留下了隐患,极易在内存回收和替换操作时触发竞争条件(Race Condition)。

为了彻底解决这个漏洞,后续演进的 rcu-free-v3 系列(共包含 10 个补丁)引入了全新的 PG_rcu_free 标志和 RCU 延迟回收机制。只要数据复制过程中没有触发缺页异常,该机制就能在数据向用户空间复制期间,为 folio 提供极其安全的保护。

在 Claude Code 的协助下,这组补丁展现出了令人惊叹的性能优化幅度。

  • 在 Linus 的笔记本上(8 线程测试):最初的 8 个补丁几乎让吞吐量飙升至原来的3 倍(从每秒 1000 万次读取提高到最高 3300 万次),每次读取消耗的内核周期也从约 2950 降至 725。

  • 在 64 线程 Threadripper 上(严重争用测试):吞吐量从每秒 1330 万次读取跃升至3.04 亿次,每次读取消耗的 CPU 周期更是从近 2 万骤降至 735。

然而,如此激进的性能提升并非没有代价。

第一版实现中的延迟回收机制,会在某个 CPU 排队等待的页面超过 1024 个时强制触发一次加速宽限期。Hardware Busters 对此作了报道。向尚未映射的用户页面读取数据时,也会额外触发一次缺页异常,然后才回退到现有路径。这使得单线程读取 16 字节数据的开销从约 4150 个周期升至 6550 个周期。目前还不清楚这一性能退化是否会在rcu-free-v3中继续存在。

大佬过招:内存回收设计的交锋

Wilcox 对新的PG_rcu_free标志提出质疑,建议改用页面类型,并在 RCU 宽限期过后回收不活跃链表中的 folio。

Torvalds 否决了这两种方案。他认为,必须趁 folio 仍可映射到用户空间时设置该标志;而只从不活跃链表回收 folio,则无法覆盖 truncate 和打洞操作。随后,Shutsemau 建议将该标志限制在 64 位系统上。Arm 工程师、Linux 内存管理维护者 David Hildenbrand 支持这一方案。

而在关键函数 filemap_read_rcu_batch() 中,Shutsemau 进一步拆解了他发现的那个竞争条件(Race Condition)隐患:

在无引用的 RCU 读取路径中,原补丁的逻辑是先获取当前的 folio,然后再去读取文件的大小(i_size)。

Shutsemau 指出,这里存在一个致命的时间差:当一个旧的 folio 被驱逐并替换为一个全新的 folio 后,如果另一个进程恰好在此时扩展了文件大小(i_size)。此时,读取路径依然在使用已经被替换掉的旧 folio 的快照信息,但在计算读取边界时,却采用了新扩展出来的 i_size。这就导致读取代码会错误地“越界”读到该文件新扩展出的、实际在磁盘和内存中都尚未写入有效数据的空白区域,直接将“尚未写入的数据”返回给了用户程序。

为了消除这一时序隐患,Torvalds 提出了明确的重构方向:必须改变执行顺序,将文件大小(i_size)的读取操作提前,并在随后将 folio 的有效性检查与边界逻辑进行合并合并。Shutsemau 随后完全采纳了这一改进思路,并将这一逻辑顺利纳入了修订版补丁中。

https://www.phoronix.com/news/Linus-Torvalds-Claude-Code

https://thenewstack.io/torvalds-claude-code-kernel/

声明:本文为 InfoQ 原创,不代表平台观点,也不构成投资建议,未经许可禁止转载。

会议推荐

QCon 全球软件开发大会·2026(上海站)将于 10 月 22 日—24 日举办。本届大会聚焦 Harness AI 时代的工程实践,从「构建 AI」到「驾驭 AI」,围绕 AI Native 架构、Agent Runtime、AI Infra、Agent 安全与可观测、Loop Engineering、具身智能与世界模型 等热门技术方向,邀请全球技术社区与产业一线实践者,共同分享 AI Native 时代最具价值的工程经验。查看更多详情可扫码或联系票务经理 18514549229 进行咨询。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
社区免费体检没人去?真相不是老人糊涂,是怕得明明白白

社区免费体检没人去?真相不是老人糊涂,是怕得明明白白

偷喝一口奶
2026-08-31 08:26:56
元斌神隐16年突现身!48岁「一头长发垂后颈」近况曝光 脸完全没变

元斌神隐16年突现身!48岁「一头长发垂后颈」近况曝光 脸完全没变

ETtoday星光云
2026-10-13 10:03:04
为什么几张照片就能让夫妻情绪崩溃?

为什么几张照片就能让夫妻情绪崩溃?

小眼睛小世界
2026-10-15 04:30:33
大量油车车主说到:想要燃油车回暖,第一步就是拿掉颗粒捕捉器

大量油车车主说到:想要燃油车回暖,第一步就是拿掉颗粒捕捉器

青史卷中人
2026-10-14 00:24:05
真实关系坐实!亚运三金后休假不回家,林诗栋为了她专程奔赴三亚

真实关系坐实!亚运三金后休假不回家,林诗栋为了她专程奔赴三亚

江启
2026-10-07 00:20:32
吃他汀不能碰鸭肉?医生提醒:不只是鸭肉,这6物或也要忌嘴

吃他汀不能碰鸭肉?医生提醒:不只是鸭肉,这6物或也要忌嘴

医学科普汇
2026-10-02 10:50:21
扫地机器人突然爆炸!澳洲小伙重伤送医,全身75%烧伤,命悬一线

扫地机器人突然爆炸!澳洲小伙重伤送医,全身75%烧伤,命悬一线

澳洲红领巾
2026-10-15 14:38:46
菲律宾,真想跟中国打一仗?

菲律宾,真想跟中国打一仗?

补壹刀
2026-10-15 16:35:46
沈阳一巡察组组长转行律师,一边收民警30万,一边给7名司法人员送145万

沈阳一巡察组组长转行律师,一边收民警30万,一边给7名司法人员送145万

听心堂
2026-10-15 17:18:42
巴萨迎来幸福烦恼!两大新援状态火热 引爆左边锋首发之争

巴萨迎来幸福烦恼!两大新援状态火热 引爆左边锋首发之争

球事百科吖
2026-10-15 03:57:24
比人参还金贵!曾被认定灭绝,03年打包送上太空,造出18亿产值

比人参还金贵!曾被认定灭绝,03年打包送上太空,造出18亿产值

Hi科普啦
2026-10-15 19:10:09
贝莱德CEO芬克警告:美国经济已高度依赖AI投资,一旦叫停数据中心建设,恐将陷入衰退

贝莱德CEO芬克警告:美国经济已高度依赖AI投资,一旦叫停数据中心建设,恐将陷入衰退

投资者内参
2026-10-15 13:01:10
一次超强厄尔尼诺已形成,为什么说真正考验在明年春夏

一次超强厄尔尼诺已形成,为什么说真正考验在明年春夏

澎湃新闻
2026-10-15 23:55:15
美光科技在存储股中率先转涨,此前一度跌超6%

美光科技在存储股中率先转涨,此前一度跌超6%

每日经济新闻
2026-10-15 23:16:29
穆里尼奥开炮了:同是41岁,莫德里奇没人劝退,C罗却被天天盼着退休,这双标也太明显了吧

穆里尼奥开炮了:同是41岁,莫德里奇没人劝退,C罗却被天天盼着退休,这双标也太明显了吧

衔春信
2026-10-07 00:36:30
新华社消息|外交部:日当政者应正视历史,反省罪责,洗心革面

新华社消息|外交部:日当政者应正视历史,反省罪责,洗心革面

新华社
2026-10-15 18:40:31
心理学:当儿女不尊重你时,不要愤怒,不要讲道理,记住这两句话就够了

心理学:当儿女不尊重你时,不要愤怒,不要讲道理,记住这两句话就够了

心理观察局
2026-07-06 07:02:14
处境艰难,杨瀚森或寻求交易,下家3选1,有望加入夺冠热门

处境艰难,杨瀚森或寻求交易,下家3选1,有望加入夺冠热门

喜欢体育的猫
2026-10-15 10:52:21
风向真的变了,岛内最新民调:7成台湾人认为最大威胁不在大陆

风向真的变了,岛内最新民调:7成台湾人认为最大威胁不在大陆

混沌录
2026-10-15 12:56:22
突发,Anthropic联创改口:RSI提前到2027!人类只剩6个月

突发,Anthropic联创改口:RSI提前到2027!人类只剩6个月

新智元
2026-10-15 23:09:03
2026-10-16 02:55:00
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
13065文章数 52102关注度
往期回顾 全部

科技要闻

核弹院士彭先觉:可控核聚变 不必再等50年

头条要闻

小男孩衣衫不整跟随母亲游荡 官方:其母多次拒绝救助

头条要闻

小男孩衣衫不整跟随母亲游荡 官方:其母多次拒绝救助

体育要闻

五大联赛第二射手,开着11年前的二手车

娱乐要闻

蒋劲夫晒体脂率引关注,家暴史再被扒

财经要闻

洋餐饮的中国生意:红利消退后的集体交权

汽车要闻

年轻人专属的大五座 小鹏MONA L05预售16.98万起

态度原创

本地
房产
手机
艺术
公开课

本地新闻

这个十一,林都伊春彻底出圈!

房产要闻

湾际藏品 双子登临 | 中旅・馥棠公馆395㎡&517㎡塔尖大平层全球献映

手机要闻

特努斯谈早期折叠屏手机:感觉“有点廉价、质量也不怎么样”,苹果早在2011年就开始探索相关技术

艺术要闻

震惊!费城博物馆竟藏着这么多中国造像,每一尊都美到窒息!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版