「这不可能,写报告吧」——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)
暂无评论,来写第一条吧~