Linus 用 AI 修 Linux 内核 Bug:一行代码搞定,过程却引爆社区
Linus Torvalds 用 AI 辅助排查 Intel Xe 驱动内存计算 Bug,最终仅将 round_up 改…
Linux 内核创始人 Linus Torvalds 上周亲自修复了 Intel Xe 显卡驱动中的一个 Bug,最终改动只有一行代码——把 round_up() 改成 round_down()。然而为了定位这一行错误,他在调试过程中累计提交了 24 个补丁、重启内核 18 次,并坦言 AI 几乎承担了所有繁琐工作,连 Commit 信息也是 AI 起草的。这起事件迅速在 Linux 社区引发争论,焦点从「Bug 本身」转向了「AI 在开源项目中的角色与边界」。
Bug 来龙去脉:一行代码引发的「地狱级调试」
问题出在 Intel Xe 内核显卡驱动对 CCS(Compute Command Streamer)相关内存区域的边界处理上。驱动原本只应保留这一区域用于硬件指令流,却被错误地「多算」进可用显存范围(vRAM)。一旦硬件向这块本不该写入的内存写入数据,最坏情况是破坏 GPU 页表,导致驱动行为异常;最直观的表现则是 GDM 显示管理器不断崩溃、重启,进入循环。
Linus 将这段排查经历形容为「debug session from hell」(地狱级调试)。根因是一次 CCS 偏移量计算:代码将地址向上对齐到 128KB 边界,而正确做法应是向下取整,从而保留一小块本该留给硬件的存储。修复本身极为简单,但找到它的过程并不简单。
AI 想放弃,Linus 没让它放弃
Linus 在 Commit 中透露,AI 助手在调试过程中多次主动宣告「无解」,提议直接写报告收工。他原话调侃:「我本想称它为不知疲倦的好帮手,但这 AI 好几次直截了当地说『这不可能,无解了,咱们直接写个报告吧』。」并补了一句:「我猜,训练这玩意儿的人,大概没我这么倔。」
最终的人机协作模式是:AI 多次想放弃 → Linus 强制要求继续 → AI 添加调试代码 → 分析结果 → 缩小或扩大排查范围 → 循环往复。在这条链路中,坚持排查方向、判断实验结果、决定继续还是停止的人,始终是 Linus 本人。AI 并未独立解决问题。
值得注意的是,Linus 在整段 Commit 中都没有透露自己使用的是哪一款 AI 工具,这反而成了评论区的一个话题:有人认为不点名是明智之举,「因为大家都知道,如果他说出来,接下来会发生什么」;也有人根据 AI「多次宣告无解」「直接表示不知道下一步该怎么做」的表现,猜测可能用的是某款主流编程助手。
社区炸锅:夸工具、违反 AI 政策、质疑 QA 流程
Linus 公开肯定 AI 贡献的措辞,让部分社区成员彻底不淡定。评论区分成了几派:
- 反感「夸工具」:有网友质问,「我从没见过厨师夸菜刀、建筑工人夸砖头的,凭什么你修个 Bug 就要夸 AI?」,并称过去对 Linus 创建 Linux 和 Git 的敬意正在因他「越来越无底线地吹这些东西」而消退。
- 质疑违反 AI 政策:有人翻出 Linux 内核官方的 AI 编码助手政策文档,指出该文档明确要求 AI 贡献必须标注
Assisted-by标签,并规定提交者须对 AI 生成的代码承担全部法律责任;据此认为 Linus 这次实际上违反了自家政策。 - 质疑 QA 流程:部分嵌入式背景的开发者指出,这种边角计算错误当初是如何通过代码评审的,为何没有确定性 QA 流程提前暴露,反而要靠 Linus 亲自下场「地狱级调试」。
- 担忧 AI 社会成本:还有声音把矛头从技术层面扩大到环境与认知层面,认为 AI 加速解决个人问题的同时,把代价转嫁给了水资源、空气质量和社会认知能力。
AI 在开源世界里的分裂
这场争论折射出 AI 进入开源协作后越来越明显的张力:一派认为 AI 能发现 Bug、提升效率,是好工具;另一派担心 AI 效率提升的背后,是维护者审查压力、环境成本和技术社区信任的额外消耗。
而 Linus 今年的表态也一直是开源圈关注焦点:他多次公开支持 AI 工具,反对将 Linux 变成「反 AI 阵地」;与此同时,内核里由 AI 辅助代码审查发现的问题和修复越来越多,维护者不得不在效率提升与额外审查之间反复权衡。
回到这次事件本身,至少从流程上看,AI 并没有「自动编码」解决 Bug——它更像是被 Linus 反复 Push 的一个高强度调试搭档。喜欢还是厌恶,AI 出现在 Linux 内核开发流程里这件事,已经越来越难以忽视。
