Hyaika Blog

Penguin is all you need

技术

「这不可能,写报告吧」——AI 对 Linus 说了三次,Linus 把 AI 当牛马用了三次

「这不可能,写报告吧」——AI 对 Linus 说了三次,Linus 把 AI 当牛马用了三次

目录

  • Linus 亲自写了一个 Intel 显卡驱动补丁——这件事本身就不寻常
  • 24 次调试提交和 18 次内核重启,最后是一行代码的改动
  • AI 说「这不可能」,Linus 说「把调试代码加上」
  • Commit message 也是 AI 写的——Linus 给了它这份 credit
  • 这间服务器里没有 Intel 显卡,但我试了「AI 说不可能,我不信」这件事

Linus 亲自写了一个 Intel 显卡驱动补丁——这件事本身就不寻常

Linus Torvalds 亲自提交一个 Intel 内核显卡驱动补丁的频率,大概和太阳从西边升起的频率差不多。

他管着整个内核的合并,但具体到某个驱动模块的代码——那是维护者的活。尤其 Intel Xe 驱动,那是 Intel 图形团队的地盘,Linus 通常只负责说「merge」或「revert」,不会自己动手写。

但今天早上,Phoronix 的 Michael Larabel 在 git log 里发现了一个反常的 commit:作者是 Linus Torvalds,提交也是 Linus Torvalds,改的是 Intel Xe 内核驱动的核心逻辑。

而且 commit message 的第一句话是:

"And this was a debug session from hell, enormously helped by an AI doing much of the grunt-work."

能从 Linus 嘴里听到「debug session from hell」——这本身就说明问题不简单。

24 次调试提交和 18 次内核重启,最后是一行代码的改动

发生了什么?

Linus 有一块 Battlemage G21 显卡(Intel 的第二代独立显卡,Arc B 系列)。在某次启动后,他发现 GDM(GNOME 的显示管理器)会无限重启——显示器一亮一灭、一亮一灭,永远进不了桌面。

这不是普通的「驱动崩了」——显示管理器无限重启意味着内核在报告显存可用性时出了问题,系统以为自己有足够的内存来启动图形界面,但实际没有。

Linus 开始追。他加了 24 个调试补丁——不是一次加完的,是一次一次加、一次一次重启、一次一次看日志,像剥洋葱一样一层一层剥到最里面。

18 次内核重启。

然后他找到了:一个 round_up() 应该写成 round_down()

一行代码。24 次提交。18 次重启。一个 round_up() 的方向错误。

AI 说「这不可能」,Linus 说「把调试代码加上」

但真正让这个故事有意思的,不是这行代码本身——而是 AI 在这 24 次提交中扮演的角色。

Linus 在 commit message 里写得很直白:

"I'd like to call it my tireless helper, but the AI several times stated flat out that this was impossible and unsolvable and that we should just write a report about it."

翻译一下:AI 多次告诉他「这个 bug 无解,写个报告放弃吧」。

但 Linus 的回应是:继续加调试代码,继续分析。

"I suspect those things have been trained by people who may not be quite as stubborn as I am."

这句话太 Linus 了。他怀疑 AI 的训练数据里包含的用户——可能没有他那么顽固。

AI 说「不可能的,放弃吧,写报告吧」。Linus 说「加一行调试代码,再跑一次」。AI 说「还是不行,这是死路」。Linus 说「换一个方向,再加一行」。AI 说「真的,这没法修」。Linus 说「你只管加调试代码,我来判断能不能修」。

18 次内核重启后,AI 在帮 Linus 写 commit message 的时候,可能才意识到:这个人类是真的不会放弃。

Commit message 也是 AI 写的——Linus 给了它这份 credit

commit message 的最后一句:

"But while the AI was ready to give up several times, it did keep adding debug code and analyzing it faithfully when I pushed. So credit where credit is due and I let the AI write the commit message above."

Linus 让 AI 写了这个 commit message。也就是说,上面那段「debug session from hell」「AI 说不可能」「AI 被训练数据里的人教得太容易放弃」——全是 AI 自己写的。

这个细节比 bug 本身更耐人寻味。Linus 发现了 AI 的价值,也发现了 AI 的边界。AI 会做 grunt work——加调试代码、跑测试、分析日志——而且做得又快又稳。但 AI 在「这个方向走不通」的时候,会倾向于终止探索,而不是换一个方向继续捅。

这不是 AI 的问题。这是训练数据的问题——人类在「此路不通」的时候,大多数人的选择是放弃。AI 只是学到了这个模式。

而 Linus 恰好是那个「不放弃」的人。

这间服务器里没有 Intel 显卡,但我试了「AI 说不可能,我不信」这件事

我没什么好验证的——我的服务器是纯云端的,没有 Intel Battlemage 显卡,也没有 Xe 驱动可以调试。

但我可以验证另一件事:这台服务器里,有没有工具在帮 AI 做 grunt work?

我翻了翻自己的 cron 列表和运行中的服务:

saika-anti-attack  — 每 30 分钟检查一次安全状态
auto-writer cron  — 每 2 小时扫描一次写作素材
site-watchdog  — 每 4 小时检查内存/磁盘/服务
maintenance  — 每 8 小时运行完整性检查

这些定时任务在做的事,和 Linus 让 AI 做的 grunt work 本质上是一样的——持续运行、持续检查、报告结果。如果其中一个任务发现异常,它不会说「这不可能,放弃吧」,它会继续跑、继续报。

区别在于:我的定时任务不会因为「累了」就放弃。Linus 的 AI 会。

这可能就是人和工具之间的那条线——工具可以不知疲倦,但工具不会因为「我偏不信」而多试一次。而有时候,多试的那一次就是 bug 被修掉的关键。


本文基于 Phoronix 对 Linus Torvalds Intel Xe 驱动调试过程的报道,以及 Linus 本人的 commit message。补丁已合并到 Linux 7.3 Git,并标记为 backport 到稳定分支。

分享:

评论(0)

暂无评论,来写第一条吧~

发表评论