Publications

Discovering Likely Program Invariants for Persistent Memory

Abstract

We propose a method for automatically discovering likely program invariants for persistent memory (PM), which is a type of fast and byte-addressable storage device that can retain data after power loss. The invariants, also called PM properties or PM requirements, specify which objects of the program should be made persistent and in what order. Our method relies on a combination of static and dynamic analysis techniques. Specifically, it relies on static analysis to compute dependence relations between LOAD/STORE instructions and instruments the information into the executable program. Then, it relies on dynamic analysis of the execution traces and counterfactual reasoning to infer PM properties. With precisely computed dependence relations, the inferred properties are necessary conditions for the program to behave correctly through power loss and recovery; with imprecise dependence relations, these are …

Date
October 27, 2024
Authors
Zunchen Huang, Srivatsan Ravi, Chao Wang
Book
Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering
Pages
1795-1807