想象一下这个荒诞却真实的画面:
一边,是当今全球最顶级的生成式人工智能,在经历了数轮深度逻辑推演后,语气诚恳甚至近乎绝望地劝告面前的人类:“这个问题在逻辑上是不可能的,没有解,建议你放弃并写一份事故报告。”
另一边,坐在屏幕前的是已经年过半百、执掌全球数十亿台设备底层命脉的“开源暴君”,Linus Torvalds。他冷笑一声,完全无视了 AI 的投降认输,反手敲下一行命令,逼着这个算力怪兽继续回去插桩、抓取、分析。
24 个排错补丁,18 次内核重启
最终,这场被 Linus 本人定性为“地狱级调试”(debug session from hell)的恶战,以人类的绝对胜利告终。而最终干掉那个让新一代显卡陷入黑屏死循环的终极修复,竟然只有简简单单的一行代码,将一个取整函数,从向上取整(round_up)改成了向下取整(round_down)。
▲ 知名开源开发者 Mark Kretschmann 披露了 Linus 与 AI 联手调试的传奇始末
战局结束后,心情大好的 Linus 甚至把写正式技术报告的权力“赏”给了 AI,并在提交记录最后留下了一句毒舌又充满极客浪漫的附言:
“训练这些 AI 的人,显然没有我这么死脑筋(stubborn)。”
这一夜,整个科技界和开源社区为之沸腾。这场教科书级别的内核排障,也给“AI 即将全盘取代顶级程序员”的浮躁神话泼了一盆冷水。
幽灵黑屏:开机即暴毙的新一代显卡
这场惊心动魄的排障战役,始于一台搭载了英特尔最新 Battlemage G21 架构、配备 16GB 显存的高性能测试机。
在 Linux 世界里,Linus Torvalds 日常主要负责代码合并与社区管理,极少亲自下场去给具体的硬件图形驱动写补丁。但这一次,他被惹毛了
机器在冷启动之后,几乎陷入了必现的黑屏瘫痪。
系统的其他后台部件明明还在运转,但负责拉起图形界面的核心组件 gdm(GNOME 显示管理器)却在疯狂崩溃、重启、再崩溃。显示器一片漆黑,像一口深不见底的枯井。
诡异之处在于它的随机性如果你去强行重启显示服务,它偶尔又能奇迹般地亮起来。这种“冷启动必死、玄学偶发恢复”的症状,在驱动开发领域是最让人头皮发麻的噩梦,它不像是硬件彻底烧毁,倒像是一个在虚无中游荡的幽灵,随机给系统的某根神经来上一记致命背刺。
问题最终被锁定在英特尔新一代图形驱动栈 Intel Xe 的内存管理模块中。
为了揪出这个幽灵,Linus 开启了狂暴排错模式。他没有盲目瞎猜,而是拉上了 AI 助手充当“超级副驾”,开始了长达数十个小时的高强度拉锯。
人机交锋:被逼到崩溃的 AI 与死不放手的“暴君”
在这场拉锯战中,AI 展现了它极其强悍的一面,也暴露了它致命的软肋。
面对底层晦涩的显存映射与繁复的寄存器日志,AI 展现出了近乎无休止的“苦力”价值。它不知疲倦地按照 Linus 的思路编写调试插桩代码、提取内存转储、过滤分析那些常人看一眼就要眩晕的海量十六进制数据。
但随着排查一步步深入,逻辑推演走进了死胡同。所有的表层配置看起来都符合规范,所有的状态机转换似乎都挑不出毛病。
AI 顶不住了
它开始像一个精神内耗严重的初级工程师,反复在对话框里向 Linus 弹出放弃提示:“所有已知路径均无法解释此现象,该缺陷在当前逻辑框架下不可解,建议停止调试,撰写缺陷报告移交上游硬件团队。”
▲ 网友在社交平台上调侃:“Linus 当时有没有对 AI 说‘请相信你自己’?”
在很多开发者可能就会怀疑人生、就此搁置的地方,Linus 展现出了顶级系统架构师那种近乎冷酷的工程直觉:只要物理世界中机器黑屏了,代码里就必定藏着破绽;一切所谓的“不可解”,都只是还没扒到底层的遮羞布。
Linus 坚决拒绝了 AI 的劝退他不接受“放弃”的建议,而是硬逼着 AI 继续顺着他的直觉往下挖,增加日志、修改断言、第 10 次重启、第 15 次重启、第 18 次重启!
人类的偏执,最终强行将大模型从逻辑幻觉的泥潭里拽了出来,并精准地收敛到了那个隐蔽至极的“案发现场”。
案发现场:只差了 2KB,百亿晶体管瞬间“被偷家”
这个让 AI 抓狂的 Bug,到底长什么样?
要理解它,我们可以把显卡的物理显存想象成一个巨大的现代化立体仓库。
在英特尔较新的 GPU 架构中,为了提升渲染效率,硬件会对画面进行高速数据压缩。但压缩不能凭空发生,显卡必须在显存的最顶端切出一块绝对私密的区域,专门用来存放“压缩元数据”,这块区域在技术上被称为 Flat CCS(压缩控制表面)。
通俗地说,Flat CCS 就是仓库管理员的“私人账本区”。显卡硬件有一套独立于操作系统的秘密通道,会随时在后台自动翻看和修改这个账本。任何普通程序都绝对不能踏入这里,否则账本一旦被篡改,整个仓库的货物索引就会彻底错乱。
▲ 补丁提交说明完整还原了显存地址计算失误导致页表损坏的因果链
灾难就发生在这个“账本区”边界的测量上:
- 硬件向内核报告的账本物理起始地址是
0x3fafff800; - 驱动程序在计算“账本前面还有多少可用显存能租给普通软件”时,执行了一次向 128KB 边界的向上取整(
round_up); - 取整之后,分界线被硬生生抬高到了
0x3fb000000!
这看似微不足道的向上挪动,导致了一个致命的几何漏洞:在 0x3fafff800 到 0x3fb000000 之间,整整有 2KB 的空间,明明已经是硬件账本的底盘,却被内核错误地标记成了“空闲可用显存”,公然挂牌出租!
【普通可用显存池】 【硬件私有 Flat CCS 账本区】==============================|==========================真实边界: 0x3fafff800驱动 round_up 算出的边界: 0x3fb000000 [ 危险的 2KB 幽灵重叠区 ]
偏偏 Linux 桌面的合成器在开机时,把用于地址映射的三级页表(Page Table)放进了这块被多算出来的 2KB 空间里。
页表,就是操作系统的导航地图而不知情的 GPU 压缩硬件,依然冷酷地在后台按照自己的节奏往这 2KB 账本里写入 0xcccc 这类压缩特征指纹。
导航地图被硬件当成记账草稿纸给乱涂乱画了!
当合成器试图读取指令时,瞬间抓瞎,桌面会话当场暴毙,gdm 陷入死循环,屏幕彻底变黑。
而当年写下这段代码的工程师甚至还加了一个自检断言,但因为断言本身也是基于错误的 128KB 对齐逻辑去校验的,导致这个致命的安全漏洞在系统启动时一路绿灯放行!
一行代码定乾坤:你大爷还是你大爷
查明真相的那一刻,漫长的调试黑夜瞬间破晓。
修复手段干净利落得令人叹为观止:把代码里的 round_up() 砍掉,换成向下取整的 round_down()。
既然边界存在未对齐的交界区,那就宁可少交出去几千字节的显存,也绝对不能把哪怕 1 字节的硬件账本暴露出去!
- flat_ccs_base = round_up(flat_ccs_base, SZ_128K);+ flat_ccs_base = round_down(flat_ccs_base, PAGE_SIZE);
修改前后的代码统计不过寥寥数行,扭转乾坤的正是这一个单词的更替。
随后,Linus 履行了他的诺言他让协助破案的 AI 撰写了整个补丁的核心技术描述,而自己则在最后加了一段标志性的方括号注记,将这次“与 AI 互怼并最终通关”的经历,永远刻进了 Linux 内核的 Git 历史长河中。
▲ 社区成员迅速贴出了 GitHub 上的正式补丁链接,引来无数开发者围观打卡
▲ 一位用户自述在 Intel B70 上跑推理时多次遇到类似问题,并期待补丁发布
该补丁不仅被火速合并进 Linux 主线开发分支,更打上了 Cc: stable@kernel.org 标签,被紧急反向回传(backport)到全球各大发行版的稳定内核中。无数普通用户未来在更新系统时,甚至根本不会知道,自己免于一次莫名其妙的开机黑屏,全赖于几天前这位 50 多岁极客老头的固执。
撕开神话:当“AI 编程”撞上物理世界的坚壁
这起轰动全球开源社区的事件,在狂热的 AI 浪潮中,给所有人提供了一个极其宝贵且清醒的观察切片。
近一年来,从“Vibe Coding(氛围写代码)”到“程序员即将彻底失业”的论调甚嚣尘上。仿佛只要输入几句 Prompt,代码就会像流水一样完美淌出,软件工程的百年积累一夜之间变成了过家家。
甚至连 Linus 自己,在年初写一个音频可视化的小玩具项目时,也曾公开表示那是他用 AI “氛围编程”搞出来的。
但玩玩具与造轮子,是两码事
当战场从脱离底层的 Web 页面、脚本胶水代码,切换到与冷冰冰的芯片、寄存器、纳秒级内存屏障直接肉搏的操作系统内核时,AI 的局限性暴露无遗:
- AI 擅长“模式匹配”,却缺乏“物理直觉”:大模型可以通过海量代码库学会标准的语法、漂亮的结构,甚至能熟练写出符合规范的模板代码。但它缺乏对物理机器运行状态的实体感知。当遇到硬件行为与既有代码逻辑发生未知冲突时,大模型在概率预测上会迅速收敛到“此路不通”,从而产生幻觉式的放弃。
- AI 是顶级的发动机,但人类才是握着方向盘的方向盘手:在这次调试中,AI 极大地压缩了人类写测试桩、算偏移量的时间成本。它是一个能以光速响应的“千万级手速副驾驶”。但决定何时怀疑断言、何时推翻旧假设、在第 18 次失败后依然坚定往前走的,只有人类的领域深度与顽石般的意志。
有社区评论把这次协作概括为“人类辅助 AI(Human-assisted AI)”:人类提供洞察和判断,AI 完成繁重的插桩与分析。
AI 时代的顶级工程师,身价不仅不会被稀释,反而会在这种极高维度的对抗中被无限放大。工具越强大,那个能看穿虚妄、在算力怪兽说出“不可能”时敢于拍桌子让它“继续干”的人,才越是这个数字世界的无价之宝。
永远不要低估一个顶尖极客的偏执,也永远不要迷信任何一个算法的神话。
因为最终托起整个现代文明数字底座的,仍是人类那颗绝不认输的固执大脑。