Title
HMC: Model Checking for Hardware Memory Models
Abstract
Stateless Model Checking (SMC) is an effective technique for verifying safety properties of a concurrent program by systematically exploring all of its executions. While SMC has been extended to handle hardware memory models like x86-TSO, it does not adequately support models that allow load buffering behaviours, such as the POWER, ARMv7, ARMv8, and RISC-V models. Existing SMC tools either do not consider such behaviours in the name of efficiency, or do not scale so well due to the extra complexity induced by these behaviours. We present HMC, the first efficient SMC algorithm that can verify programs under all hardware memory models in a sound, complete, and optimal fashion. We implement HMC in a tool for C programs, and show that it outperforms the state-of-the-art tools that can handle similar memory models. We demonstrate the efficiency of HMC by verifying code currently employed in production.
Year
DOI
Venue
2020
10.1145/3373376.3378480
ASPLOS '20: Architectural Support for Programming Languages and Operating Systems Lausanne Switzerland March, 2020
Keywords
DocType
ISBN
Model checking,weak memory models
Conference
978-1-4503-7102-5
Citations 
PageRank 
References 
1
0.35
0
Authors
2
Name
Order
Citations
PageRank
Michalis Kokologiannakis142.16
Viktor Vafeiadis294247.11