paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Jaaru: efficiently model checking persistent memory programs

Jaaru:高效模型检测持久内存程序
ASPLOS Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems2021匹配度 2/10 · 该论文属于程序验证/模型检测,且强调工程实现与工业缺陷发现,但研究对象是持久内存程序的崩溃一致性,未涉及 LLM/Agent、机器学习系统、浮点程序分析或贝叶斯程序分析等用户核心交叉方向。引用 34 inbox
Hamed Gorjiara, Guoqing Harry Xu, Brian Demsky
crossref: 2026-09-12

AI 速览

一句话:提出 Jaaru,基于约束精化的持久内存程序模型检测器,将崩溃一致性检查复杂度从指数级降至平方级。

持久内存(PM)兼具接近 DRAM 的性能与持久性,但确保其数据结构在崩溃(如断电)后保持一致是一大挑战。对 PM 的存储不会立即持久化,而是先驻留处理器缓存,仅在缓存满或显式 flush 时才写回,且字节寻址导致状态空间巨大。Jaaru 是一个全自动、超高效的 PM 程序模型检测器,其核心是基于约束精化的新技术,利用常见的 commit store 编码模式,将模型检测复杂度从随程序执行长度指数增长降至平方级。作者用 PMDK 和 RECIPE 评估,发现 25 个持久性缺陷(18 个新),且比 Yat 快数个数量级。

问题
持久内存程序的崩溃一致性难以测试,因为存储先进入处理器缓存而非立即持久化,且字节寻址导致状态空间巨大。
方法
Jaaru 采用基于约束精化的模型检测技术,利用 commit store 编码模式将探索复杂度从指数级降至平方级。
评估
在 PMDK 和 RECIPE 上评估,发现 25 个持久性缺陷(其中 18 个为新),效率比 Yat 高数个数量级。
原文摘要(Abstract)

Persistent memory (PM) technologies combine near DRAM performance with persistency and open the possibility of using one copy of a data structure as both a working copy and a persistent store of the data. Ensuring that these persistent data structures are crash consistent (i.e., power failures) is a major challenge. Stores to persistent memory are not immediately made persistent --- they initially reside in processor cache and are only written to PM when a flush occurs due to space constraints or explicit flush instructions. It is more challenging to test crash consistency for PM than for disks given the PM's byte-addressability that leads to significantly more states. We present Jaaru, a fully-automated and ultra-efficient model checker for PM programs. Key to Jaaru's efficiency is a new technique based on constraint refinement that can reduce the number of executions that must be explored by many orders of magnitude. This exploration technique effectively leverages commit stores, a common coding pattern, to reduce the model checking complexity from exponential in the length of program executions to quadratic. We have evaluated Jaaru with PMDK and RECIPE, and found 25 persistency bugs, 18 of which are new. Jaaru is also orders of magnitude more efficient than Yat, a model checker that eagerly explores all possible states.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot6128,
  title = {Jaaru: efficiently model checking persistent memory programs},
  author = {Hamed Gorjiara and Guoqing Harry Xu and Brian Demsky},
  booktitle = {ASPLOS},
  year = {2021},
  doi = {10.1145/3445814.3446735}
}