DURINN: Adversarial Memory and Thread Interleaving for Detecting Durable Linearizability Bugs
DURINN: Adversarial Memory and Thread Interleaving for Detecting Durable Linearizability Bugs
复制标题
DOI:
--
复制
发表时间:
2022
期刊:
影响因子:
--
通讯作者:
Xinwei Fu;Dongyoon Lee;Changwoo Min
中科院分区:
文献类型:
--
作者:
Xinwei Fu;Dongyoon Lee;Changwoo Min
Non-volatile memory (NVM) has promoted the development of concurrent crash-consistent data structures, which serve as the backbone of various in-memory persistent appli-cations. Durable linearizability defines the correct semantics of NVM-backed concurrent crash-consistent data structures, in which linearizability is preserved even in the presence of a crash event. However, designing and implementing a correct durable linearizable data structure remain challenging as developers are to manually control durability (persistence) using low-level cache flush and store fence instructions. We present D URINN , to the best of our knowledge, the first durable linearizability checker for concurrent NVM data structures. D URINN is based on the novel observation on the gap between linearizability point – when the changes to a concurrent data structure become publicly visible – and durability point – when the changes become persistent. From the detailed gap analysis, we derive three durable linearizability bug patterns that render a linearizable data structure not durable linearizable. To tame the huge NVM states and thread interleaving test space, D URINN statically identifies likely-linearization points and actively constructs adversarial NVM state and thread interleaving settings that increase the likelihood of revealing durable linearizability bugs. D URINN effectively detected 27 (15 new) durable linearizability bugs from 12 concurrent NVM data structures without a test space explosion problem. durable bugs were detected from 12 There 10