paperbot · PL 论文追踪

全部论文 待读 收藏

P2 PMFuzz: test case generation for persistent memory programs

PMFuzz:面向持久内存程序的测试用例生成
ASPLOS Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems2021匹配度 2/10 · 该论文属于持久内存程序的测试用例生成与崩溃一致性缺陷检测,与画像核心的静态分析、LLM/Agent、浮点程序分析、贝叶斯程序分析均无直接交集,仅在 PL/程序分析大类上略有相关。引用 36 inbox
Sihang Liu, Suyash Mahar, Baishakhi Ray, Samira Khan
crossref: 2026-09-12

AI 速览

一句话:提出 PMFuzz,为持久内存程序生成能触达崩溃一致性相关路径的测试用例,以提升崩溃一致性缺陷的检测效果。

持久内存兼具存储的持久性与接近 DRAM 的性能,但使用它的程序必须保证故障(如断电)后数据仍可恢复,因此容易出现崩溃一致性缺陷。已有工具(Pmemcheck、PMTest、XFDetector)通过检查 PM 访问轨迹是否违反程序的崩溃一致性保证来检测这类缺陷,然而检测效果高度依赖测试用例:只有执行到存在缺陷的程序路径,缺陷才可能被暴露。为此,本文提出 PMFuzz,一个面向持久内存程序的测试用例生成器,旨在为上述检测工具提供覆盖更充分的测试输入,从而更有效地发现崩溃一致性缺陷。摘要着重论证了测试用例生成对崩溃一致性缺陷检测的必要性,但未具体说明其生成策略与量化评估结果。

问题
持久内存程序若崩溃一致性处理不当,故障后恢复可能出错;而现有检测工具依赖程序执行轨迹,只有测试用例执行到有缺陷路径时才能发现缺陷。
方法
提出 PMFuzz,一个针对持久内存程序的测试用例生成器,用于生成能够触达崩溃一致性相关代码路径的测试输入,配合已有检测工具使用。
评估
摘要仅给出问题动机,未描述具体的评估设置、对比基线或量化结果,仅指出需借助测试用例生成器来有效检测崩溃一致性缺陷。
原文摘要(Abstract)

The Persistent Memory (PM) technology combines the persistence of storage with the performance approaching that of DRAM. Programs taking advantage of PM must ensure data remains recoverable after a failure (e.g., power outage), and therefore, are susceptible to having crash consistency bugs that lead to incorrect recovery after a failure. Prior works have provided tools, such as Pmemcheck, PMTest, and XFDetector, that detect these bugs by checking whether the trace of PM accesses violates the program’s crash consistency guarantees. However, detection of crash consistency bugs highly depends on test cases—a bug can only be detected if the buggy program path has been executed. Therefore, using a test case generator is necessary to effectively detect crash consistency bugs.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6107,
  title = {PMFuzz: test case generation for persistent memory programs},
  author = {Sihang Liu and Suyash Mahar and Baishakhi Ray and Samira Khan},
  booktitle = {ASPLOS},
  year = {2021},
  doi = {10.1145/3445814.3446691}
}