孤本网
/ 0 阅读
0
0

Linux 创始人用 AI 写内核补丁,人类审查员揪出 AI 未发现的竞争条件 Bug

一句话结论

林纳斯·托瓦兹用 AI 生成 Linux 内核补丁,性能提升 23 倍,但人类审查员发现竞争条件缺陷,补丁尚未合入。

关键要点

  • 林纳斯·托瓦兹使用 Anthropic 的 Claude Code 协助完成 Linux 页面缓存修复补丁,在 Ryzen Threadripper 合成基准测试中读取吞吐量提升 23 倍
  • 该补丁尚未合入主分支,维护者基里尔·舒特马乌在审查中发现 filemap_read_rcu_batch() 函数存在竞争条件,可能导致向用户程序返回未写入数据
  • 补丁基于 Linux 7.3-rc6 开发,最初包含 8 个提交,后续演进为包含 10 个补丁的 rcu-free-v3 系列
  • 林纳斯的 Core i7-8565U 笔记本 8 线程测试显示,跨核加载 HITM 事件中 99.92% 与 folio 引用计数争用有关
  • 单次读取 16 字节数据的内核周期消耗从约 2950 降至 725(8 线程),Threadripper 64 线程测试中从近 2 万骤降至 735

背景与事实

Linux 内核的创造者、长期首席维护者林纳斯·托瓦兹(Linus Torvalds)借助 Anthropic 公司的开发者工具 Claude Code,着手解决一个困扰开发者两年多的内核性能问题。这个瓶颈源于页面缓存中的引用计数操作,最初于 2024 年由 Oracle 工程师马修·威尔科克斯(Matthew Wilcox)提出,当时是在一个客户工作负载中暴露出来的。威尔科克斯长期参与 Linux 内核内存管理开发,他发现的问题涉及 folio(Linux 内核中表示内存页组的抽象概念)在缓冲读取路径中的引用计数开销。

在此之前,托瓦兹曾花 18 个月运行自己编写的一版有缺陷的修复代码试图解决这个问题,但始终未能成功;其他开发者提出的方案也遇到了类似的瓶颈。托瓦兹在提交记录中明确标注,这组基于 Linux 7.3-rc6 的补丁的代码、测试程序,甚至提交前的初步审查工作,都是由 Claude Code 在他的指导下完成的,而性能测量则由他本人在自己的机器上进行。

Phoronix 的迈克尔·拉雷贝尔(Michael Larabel)在周日发现托瓦兹的代码树中出现了一个名为 noref-filemap-read-with-llm 的实验分支。值得注意的是,托瓦兹的代码树里极少保留主开发分支(Mainline)以外的内容,这一发现引起了开发社区的广泛关注。最初提交的补丁包含 8 个提交,在后续演进中扩展为包含 10 个补丁的 rcu-free-v3 系列。

根据 Hardware Busters 的报道,在托瓦兹的 Core i7-8565U 笔记本电脑上进行的 8 线程测试中,跨核加载 HITM(Hit on Modified)事件里有 99.92% 与 folio 引用计数争用有关。在最初的 8 个补丁应用后,吞吐量几乎飙升至原来的 3 倍,从每秒 1000 万次读取提高到最高 3300 万次,每次读取消耗的内核周期从约 2950 降至 725。在 64 线程的 Threadripper 处理器上进行的严重争用测试中,吞吐量从每秒 1330 万次读取跃升至 3.04 亿次,每次读取消耗的 CPU 周期从近 2 万骤降至 735。

然而,如此激进的性能提升并非没有代价。第一版实现中的延迟回收机制,会在某个 CPU 排队等待的页面超过 1024 个时强制触发一次加速宽限期。向尚未映射的用户页面读取数据时,也会额外触发一次缺页异常,然后才回退到现有路径。这使得单线程读取 16 字节数据的开销从约 4150 个周期升至 6550 个周期。托瓦兹在提交时提醒,在真实工作负载中,性能提升幅度会小得多。

影响分析

对中文开发者与从业者而言,这一事件提供了两个重要参考。首先,AI 辅助编程工具在高复杂度系统编程中的实际能力边界得以显现:Claude Code 能够生成性能优化显著的补丁代码,但无法完全避免并发场景下的细微时序缺陷。这表明 AI 适合处理模式明确的性能优化问题,但在涉及多线程竞争、内存生命周期等深层内核机制时,仍需人类专家的直觉与经验进行把关。

其次,这次事件强化了代码审查在 AI 生成代码中的不可替代性。人类审查员舒特马乌能够凭借专业直觉发现 AI 和托瓦兹都未察觉的竞争条件,说明 AI 代码的生产效率提升不能替代人工审查的质量保障角色。对于采用 AI 工具的开发团队而言,建议将 AI 定位为代码生成与初筛助手,关键路径、并发逻辑、安全敏感代码仍需由资深工程师进行完整审查,不可因 AI 输出通过自查而放松人工验证环节。

适用边界

本事件的结论主要适用于 Linux 内核级别的系统编程场景,特别是涉及并发控制、内存管理、引用计数等复杂机制的性能优化任务。该结论不适用于业务逻辑简单、并发度低的应用层代码开发场景,在这些场景中 AI 生成代码的可靠性可能更高,审查负担也相对较小。此外,文中提到的性能提升数据基于合成基准测试,实际工作负载中的性能改善幅度会因具体应用场景而异,不能简单套用文中的倍数结论。

孤本观察

编辑判断:托瓦兹公开痛批“99% 代码靠 AI 生成”言论后亲自使用 Claude Code 做实验,这一行为本身比技术结果更具信号价值,说明即使在最怀疑 AI 夸大宣传的核心社区,工具级 AI 的实用价值也已经开始获得顶级维护者的认可。

来源:InfoQ 中文 AI(https://www.infoq.cn/article/hRw4BZQQUW14sqYMo5F6?utm_source=rss&utm_medium=article)

Linux 创始人用 AI 写内核补丁,人类审查员揪出 AI 未发现的竞争条件 Bug

Linux 创始人用 AI 写内核补丁,人类审查员揪出 AI 未发现的竞争条件 Bug

Linux 创始人用 AI 写内核补丁,人类审查员揪出 AI 未发现的竞争条件 Bug

Linux 创始人用 AI 写内核补丁,人类审查员揪出 AI 未发现的竞争条件 Bug

Linux 创始人用 AI 写内核补丁,人类审查员揪出 AI 未发现的竞争条件 Bug

常见问题

林纳斯·托瓦兹使用的AI工具名称及其开发商是什么?

使用的是Anthropic公司开发的Claude Code。

该补丁在Ryzen Threadripper基准测试中读取吞吐量提升了多少倍?

读取吞吐量提升了23倍。

人类审查员发现的竞争条件缺陷会导致什么后果?

可能导致向用户程序返回未写入数据。

在Core i7-8565U笔记本8线程测试中,内核周期消耗从多少降至多少?

从约2950降至725。

该补丁基于哪个Linux版本开发,最终包含多少个补丁?

基于Linux 7.3-rc6开发,最终演进为包含10个补丁的系列。

来源:InfoQ 中文 AI


评论