← 最新论文
💻 computer science

Towards Better Linux Kernel Fault Localization: Leveraging Contrastive Reasoning and Hierarchical Context Analysis

本文介绍了 CoHiKer,这是一种基于大语言模型(LLM)的新型 Linux 内核故障定位技术,它利用对比推理和层级上下文分析,在准确性和 Token 效率方面均显著超越了最先进的基准方法。

原作者: Haichi Wang, Ruiguo Yu, Yesong Pang, Yingquan Zhao, Junjie Chen, Jiajun Jiang, Zan Wang

发布于 2026-07-02
📖 1 分钟阅读☕ 轻松阅读

原作者: Haichi Wang, Ruiguo Yu, Yesong Pang, Yingquan Zhao, Junjie Chen, Jiajun Jiang, Zan Wang

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,Linux 内核就像一座巨大、古老且极其复杂的城市,拥有超过 4000 万栋建筑(代码行)。当城市出现问题时——比如电网故障或导致全城停电的交通拥堵——要找到问题的确切源头所在的那个“建筑”是非常困难的。症状(停电)可能发生在某个街区,但实际损坏的管道可能在另一个完全不同的区域,两者仅通过隐形的地下隧道相连。

这就是**故障定位(Fault Localization)**的问题:寻找导致崩溃的代码中那个特定的“损坏建筑”。

这篇论文介绍了一个名为 CoHiKer(全称 Contrastive Hierarchical Kernel,即对比式层级内核)的新工具来解决这个问题。以下是它的工作原理,使用了简单的类比:

旧工具的问题

以前,开发者尝试通过两种主要方式来寻找 Bug,但这两种方式在处理 Linux 内核时都显得力不从心:

  1. “覆盖率”侦探(传统工具): 这些工具观察程序运行时哪些代码部分被“点亮”了。但在 Linux 内核中,当崩溃发生时,灯光会瞬间熄灭,且“点亮”的地图会被抹除。你无法看到侦探曾经走过的路径。
  2. “关键词”搜索(旧的 AI 工具): 这些工具阅读 Bug 报告(例如“系统崩溃”)并在代码中搜索相似的词汇。但在内核中,报告中的词汇往往与代码中的词汇不匹配。报告可能说“内存错误”,但实际的 Bug 可能位于“文件系统”文件中。这就像是通过在蓝图库中搜索“面包”这个词来寻找一个“坏掉的面包机”。

CoHiKer 的解决方案:两步走的侦探

CoHiKer 使用了大语言模型(一种先进的 AI),但赋予了它一种特殊的策略来应对内核的复杂性。它使用了两个主要的技巧:

1. “如果……会怎样?”游戏(对比推理)

CoHiKer 不仅仅是观察失败的测试用例,它还会玩一场“如果……会怎样?”的游戏:

  • 场景: 想象一个测试用例是一份导致厨房爆炸的食谱。
  • 技巧: CoHiKer 要求 AI 对食谱进行微小的调整(改变盐的用量,或者改变温度),看看爆炸是否会停止。
  • 洞察: 如果改变某一个特定的配料能让爆炸停止,AI 就会意识到:“啊哈!问题不在于整个厨房;而在于烤箱如何处理那个特定的温度。”
  • 为什么有效: 这有助于 AI 理解崩溃的原因,而不只是症状。它弥合了“系统崩溃”与“这行特定代码处理数据出错”之间的鸿沟。

2. “缩放”策略(层级上下文分析)

Linux 内核太大了,无法一次性全部读取。你无法把 4000 万行代码全部塞进一个聊天窗口。CoHiKer 通过逐步缩放的方法解决了这个问题:

  • 第 1 步:街区搜索(文件级): 首先,AI 根据崩溃报告和“如果……会怎样?”提供的线索,推测哪些街区(文件)是可疑的。它将搜索范围从整个城市缩小到大约 18 栋特定的建筑。
  • 第 2 步:房间搜索(方法级): 一旦有了这 18 栋建筑,它不会去检查每一块砖。它使用一种智能过滤器来猜测这些建筑内哪些房间(方法/函数)最有可能存在破损的管道。然后,它会专门针对这些房间进行缩放,以找到确切的损坏部分。

结果:更快、更聪明

研究人员在 210 个真实的 Linux 内核 Bug 上测试了 CoHiKer。以下是他们的发现:

  • 准确性: 它比之前的工具更频繁地找到正确的“损坏建筑”。例如,在文件级,它比之前最好的 AI 工具高出约 26% 的准确率。在方法级(寻找确切的房间),它的准确率提高了 56%
  • 效率: 因为它不会浪费时间阅读整个城市,所以它使用的计算机“脑力”(Token)比其他 AI 工具少 高达 29 倍。这就像是在黑暗的房间里用手电筒找钥匙,而不是把屋里所有的灯都打开。
  • 通用性: 他们也在非内核软件(常规应用)上测试了它,效果也很好,证明了该策略是可靠的。

总结

可以将 CoHiKer 想象成一名不仅仅是阅读犯罪现场报告的侦探。相反,它:

  1. 重演犯罪过程,通过细微的变化来弄清楚究竟是什么触发了灾难。
  2. 缩小搜索范围,从整个城市到特定的街道,再到特定的房屋,最后到特定的破损窗户,忽略掉其他一切。

这使得在庞大且复杂的 Linux 内核中寻找 Bug 变得更快、更便宜,也更加准确。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →