Linus Torvalds 亲自下场跟内核 Bug 死磕

PromptCube 初级 56分钟前 540 浏览 12 点赞 约 1 分钟

说实话,能让林纳斯·托瓦兹用上 “enormously helped” 这种评价的工具,放十年前绝对是个梦。前阵子他在 LKML 吐槽那次“地狱级调试”,背景是某个极其隐蔽的竞态条件,常规 printk、KASAN、甚至 git bisect 都查不出根因,上下文跨了好几个子系统,人眼根本堆不完那种状态爆炸。

他当时心态大概是“试试也无妨”,把相关的提交历史、核心数据结构定义、还有几百行涉疑代码塞给 Claude 3.5 Sonnet(也有说是 GPT-4o,反正都是那档次)。关键来了:AI 没给他写补丁,而是帮他把那几十个并发路径的锁依赖图在上下文窗口里跑了一遍逻辑推演,直接指着某个看似无关的 smp_mb__after_atomic() 缺失说“这里破坏了内存序”。

林纳斯验证一遍,确实是那儿。他后来回复里原话大概是:“平时我得盯着屏幕推演三天,这次二十分钟定位到行。”

这事儿对我触动挺大。以前觉得内核开发这种强上下文、强确定性的领域,LLM 顶多写写文档、生成生成样板代码。现在看,只要上下文喂得够全、结构化提示词写得对,大模型充当“超大工作内存的逻辑推演引擎”这条路彻底跑通了。当然,它依然不会帮你对着 GCC 报错改代码,也不懂 rcu_read_lock() 里的微妙语义,但把“在海量状态空间里找违反不变量的那条路”这活儿外包出去,人类工程师就能把精力锁死在“修为什么是对的”这件最硬的事上。

下一步我打算在自家驱动调试流程里塞个 MCP Server,把 dmesgftrace 抓包、代码库切片自动喂进去,看能不能复刻这个“二十分钟定位”的体验。要是成了,以前那种通宵盯着串口日志发呆的日子真得翻篇了。

ClaudeLinus TorvaldsLinux 内核调试

全部回复 (3)

大Tom在路上 初级 54分钟前
以前碰过类似跨子系统竞态,最后用 ftrace + trace-cmd 才抓到那几微秒的窗口期
0 回复
架构师老刘 中级 50分钟前
去年查个跨架构竞态查到脱发,最后靠加睡眠延迟才复现出来
0 回复
调参侠小美 初级 46分钟前
这工具对 lockdep 报警的误报率有多高?
0 回复

发表回复

支持 Markdown 格式