论文

实现更好的 Linux 内核故障定位:利用对比推理和层次上下文分析

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

摘要

由于 Linux 内核庞大的代码库、复杂的架构和底层编程的复杂性,调试 Linux 内核仍然是一项艰巨的挑战。因此,有效的故障定位(FL)对于高效的内核调试和维护至关重要。虽然现有的 FL 技术(传统的和基于 LLM 的)已在通用软件中显示出前景,但它们不适合内核环境。特别是,最近基于 LLM 的技术通常将错误报告和源代码视为纯文本,缺乏内核特定知识的深度集成,这限制了它们识别根本原因和实现细粒度本地化的能力。我们推出了 CoHiKer,这是一种针对 Linux 内核量身定制的基于 LLM 的新型 FL 技术。 CoHiKer 引入了两项关键创新:(1) 对比推理,通过分析仔细变异的通过和失败测试用例之间的行为差​​异来识别根本原因;(2) 分层上下文分析,通过集成崩溃报告、系统调用语义、文件间依赖关系和特定于内核的功能,系统地将本地化范围从文件缩小到方法。与依赖静态理解和全代码输入的现有技术不同,CoHiKer 分解了本地化任务,并支持结构化 LLM 提示,以便在有意义的上下文中进行语义推理。我们根据五个最先进的基线在扩展的 Linux 内核错误数据集上评估 CoHiKer。 CoHiKer 的表现始终优于所有竞争对手,与最先进的基于 LLM 的基准相比,Top-1 本地化准确度在文件级别提高了 26.07%,在方法级别提高了 56.85%,同时词元消耗分别减少了 8.84% 和 28.9%。此外,CoHiKer 在非内核数据集上表现出很强的通用性,具有可比的增益(在文件和方法级别的 Top-1 中分别为 15.5% 和 5.3%)。