Robustness Verification for Checking Crash Consistency of Non-volatile Memory
Zhilei Han, Fei He
摘要
The emerging non-volatile memory (NVM) technologies provide competitive performance with DRAM and ensure data persistence in the event of system failure. However, it exhibits weak behaviour in terms of the order in which stores are committed to NVMs, and therefore requires extra efforts from developers to flush pending writes. To ensure correctness of this error-prone task, it is crucial to develop a rigid method to check crash consistency of programs running on NVM devices. Most existing solutions are testing-based and rely on user guidance to dynamically detect such deficiencies. In this paper, we present a fully automated method to verify robustness, a newly established property for ensuring crash consistency of such programs. The method is based on the observation that, reachability of a post-crash non-volatile state under a given pre-crash execution can be reduced to validity of the pre-crash execution with additional ordering constraints. Our robustness verification algorithm employs a search-based framework to explore all partial executions and states, and checks if any non-volatile state is reachable under certain pre-crash execution. Once a reachable non-volatile state is obtained, we further check its reachability under memory consistency model. The algorithm is implemented in a prototype tool PMVerify that leverages symbolic encoding of the program and utilizes an SMT solver to efficiently explore all executions and states.
The method is integrated into the DPLL(T) framework to optimize the robustness checking algorithm. Experiments on the PMDK example benchmark show that PMVerify is competitive with the state-of-the-art dynamic tool, PSan, in terms of robustness violation detection.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
它引用的顶会 Paper21
- Persistency semantics of the Intel-x86 architectureAzalea Raad, John Wickerson, Gil Neiger, Viktor VafeiadisPOPL 2020 · 被引用 61 次
- Cross-Failure Bug Detection in Persistent Memory ProgramsSihang Liu, Korakit Seemakhupt, Yizhou Wei, Thomas F. Wenisch 等ASPLOS 2020 · 被引用 60 次
- Truly stateless, optimal dynamic partial order reductionMichalis Kokologiannakis, Iason Marmanis, Vladimir Gladstein, Viktor VafeiadisPOPL 2022 · 被引用 46 次
- Fast, flexible, and comprehensive bug detection for persistent memory programsBang Di, Jiawen Liu, Hao Chen, Dong LiASPLOS 2021 · 被引用 37 次
- Jaaru: efficiently model checking persistent memory programsHamed Gorjiara, Guoqing Harry Xu, Brian DemskyASPLOS 2021 · 被引用 34 次
相关 Paper
- Vinter: Automatic Non-Volatile Memory Crash Consistency Testing for Full SystemsSamuel Kalbfleisch, Lukas Werling, Frank BellosaUSENIX ATC 2022
- Witcher: Systematic Crash Consistency Testing for Non-Volatile Memory Key-Value StoresXinwei Fu, Wook-Hee Kim, Ajay Paddayuru Shreepathi, Mohannad Ismail 等SOSP 2021 · 被引用 17 次
- Mumak: Efficient and Black-Box Bug Detection for Persistent MemoryJoão Gonçalves, Miguel Matos, Rodrigo RodriguesEuroSys 2023 · 被引用 5 次
- Persistent Owicki-Gries reasoning: a program logic for reasoning about persistent programs on Intel-x86Azalea Raad, Ori Lahav, Viktor VafeiadisOOPSLA 2020 · 被引用 20 次
- DURINN: Adversarial Memory and Thread Interleaving for Detecting Durable Linearizability BugsXinwei Fu, Dongyoon Lee, Changwoo MinOSDI 2022 · 被引用 10 次
