paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Fast, flexible, and comprehensive bug detection for persistent memory programs

持久内存程序的快速、灵活且全面的错误检测
ASPLOS Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems2021匹配度 2/10 · 该论文属于程序分析与调试/运行时错误检测,面向持久内存程序的崩溃一致性错误,与用户主攻的 LLM/Agent 结合静态分析、AI 辅助形式化验证、浮点程序分析、贝叶斯程序分析均无直接交集;仅在“程序分析/缺陷检测”大方向上间接相关。引用 37 inbox
Bang Di, Jiawen Liu, Hao Chen, Dong Li
crossref: 2026-09-12

AI 速览

一句话:提出 PMDebugger,一个快速、灵活且全面检测持久内存程序崩溃一致性错误的调试器。

持久内存(PM)程序调试面临性能开销与错误覆盖之间的根本权衡:开销过大或覆盖有限都使调试不可行。本文提出 PMDebugger,一个检测 PM 程序崩溃一致性 bug 的调试器。其设计基于对 store、cache writeback 和 fence 三类基本操作的特征刻画,采用分层结构,包含 PM 调试专用数据结构、操作与检测算法,并泛化九条规则以覆盖多种持久性模型。评估显示,相比 XFDetector 和 Pmemcheck 平均加速 49.3 倍和 3.4 倍;与 PMTest 性能相当(2 倍以内),且不重度依赖注解,在十个应用上多检测 38 个 bug;还在 memcached 发现 19 个新 bug,在 Intel PMDK 发现 2 个新 bug。

问题
持久内存程序调试存在性能开销与错误覆盖之间的根本权衡,现有工具要么开销大,要么覆盖有限,导致调试不可行或低效。
方法
PMDebugger 基于对 store、cache writeback 和 fence 三类基本操作的特征刻画,采用分层设计,包含 PM 调试专用数据结构、操作和 bug 检测算法,并泛化九条规则以覆盖多种持久性模型。
评估
与 XFDetector、Pmemcheck、PMTest 等检测器对比,在性能、注解依赖和 bug 发现数量上进行评估;相比 XFDetector 和 Pmemcheck 平均加速 49.3x/3.4x,与 PMTest 性能相当且多检测 38 个 bug,并在 memcached 与 Intel PMDK 中发现新 bug。
原文摘要(Abstract)

Debugging persistent memory (PM) programs faces a fundamental tradeoff between performance overhead and bug coverage (comprehensiveness). Large performance overhead or limited bug coverage makes debugging infeasible or ineffective for PM programs. We present PMDebugger, a debugger that detects crash consistency bugs in PM programs. Unlike prior work, PMDebugger is fast, flexible and comprehensive. The design of PMDebugger is driven by a characterization that shows how three fundamental operations in PM programs (store, cache writeback and fence) typically occur in PM programs. PMDebugger uses a hierarchical design composed of PM debugging-specific data structures, operations and bug-detection algorithms (rules). We generalize nine rules to detect crash-consistency bugs for various PM persistency models. Compared with a state-of-the-art detector (XFDetector) and an industry-quality detector (Pmemcheck), PMDebugger leads to 49.3x and 3.4x speedup on average. Compared with another state-of-the-art detector (PMTest) optimized for high performance, PMDebugger achieves comparable performance (within a factor of 2), without heavily relying on programmer annotations, and detects 38 more bugs on ten applications. PMDebugger also identifies more bugs than XFDetector and Pmemcheck. PMDebugger detects 19 new bugs in a real application (memcached) and two new bugs from Intel PMDK.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6133,
  title = {Fast, flexible, and comprehensive bug detection for persistent memory programs},
  author = {Bang Di and Jiawen Liu and Hao Chen and Dong Li},
  booktitle = {ASPLOS},
  year = {2021},
  doi = {10.1145/3445814.3446744}
}