Optimal Stateless Model Checking under the Release-Acquire Semantics

被引:48
作者
Abdulla, Parosh Aziz [1 ]
Atig, Mohamed Faouzi [1 ]
Jonsson, Bengt [1 ]
Tuan Phong Ngo [1 ]
机构
[1] Uppsala Univ, Uppsala, Sweden
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2018年 / 2卷 / OOPSLA期
关键词
software model checking; weak memory models; C/C++11; Release-Acquire;
D O I
10.1145/3276505
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a framework for the efficient application of stateless model checking (SMC) to concurrent programs running under the Release-Acquire (RA) fragment of the C/C++11 memory model. Our approach is based on exploring the possible program orders, which define the order in which instructions of a thread are executed, and read-from relations, which specify how reads obtain their values from writes. This is in contrast to previous approaches, which also explore the possible coherence orders, i.e., orderings between conflicting writes. Since unexpected test results such as program crashes or assertion violations depend only on the read-from relation, we avoid a potentially significant source of redundancy. Our framework is based on a novel technique for determining whether a particular read-from relation is feasible under the RA semantics. We define an SMC algorithm which is provably optimal in the sense that it explores each program order and read-from relation exactly once. This optimality result is strictly stronger than previous analogous optimality results, which also take coherence order into account. We have implemented our framework in the tool Tracer. Experiments show that Tracer can be significantly faster than state-of-the-art tools that can handle the RA semantics.
引用
收藏
页数:29
相关论文
共 51 条
[1]  
Abdulla Parosh Aziz, 2015, Tools and Algorithms for the Construction and Analysis of Systems. 21st International Conference, TACAS 2015, held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015. Proceedings: LNCS 9035, P353, DOI 10.1007/978-3-662-46681-0_28
[2]   Optimal Dynamic Partial Order Reduction [J].
Abdulla, Parosh ;
Aronis, Stavros ;
Jonsson, Bengt ;
Sagonas, Konstantinos .
ACM SIGPLAN NOTICES, 2014, 49 (01) :373-384
[3]   Context-Bounded Analysis for POWER [J].
Abdulla, Parosh Aziz ;
Atig, Mohamed Faouzi ;
Bouajjani, Ahmed ;
Tuan Phong Ngo .
TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, TACAS 2017, PT II, 2017, 10206 :56-74
[4]   Stateless Model Checking for POWER [J].
Abdulla, Parosh Aziz ;
Atig, Mohamed Faouzi ;
Jonsson, Bengt ;
Leonardsson, Carl .
COMPUTER AIDED VERIFICATION: 28TH INTERNATIONAL CONFERENCE, CAV 2016, PT II, 2016, 9780 :134-156
[5]   The Best of Both Worlds: Trading Efficiency and Optimality in Fence Insertion for TSO [J].
Abdulla, Parosh Aziz ;
Atig, Mohamed Faouzi ;
Ngo, Tuan-Phong .
PROGRAMMING LANGUAGES AND SYSTEMS, 2015, 9032 :308-332
[6]  
Abdulla Parosh Aziz, 2016, CONCUR 2016
[7]   Herding Cats: Modelling, Simulation, Testing, and Data Mining for Weak Memory [J].
Alglave, Jade ;
Maranget, Luc ;
Tautschnig, Michael .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 36 (02)
[8]  
Alglave J, 2013, LECT NOTES COMPUT SC, V7792, P512, DOI 10.1007/978-3-642-37036-6_28
[9]  
Alglave Jade, COMPUTER AIDED VERIF, V8044, P141
[10]  
[Anonymous], 2008, SPSC BUG