TY - GEN
T1 - Pattern-based synthesis of synchronization for the C++ memory model
AU - Meshman, Yuri
AU - Rinetzky, Noam
AU - Yahav, Eran
N1 - Publisher Copyright:
© 2015 FMCAD Inc.
PY - 2016/8/11
Y1 - 2016/8/11
N2 - We address the problem of synthesizing efficient and correct synchronization for programs running under the C++ relaxed memory model. Given a finite-state program P and a safety property S such that P satisfies S under a sequentially consistent (SC) memory model, our approach automatically eliminates concurrency errors in P due to the relaxed memory model, by creating a new program P with additional synchronization. Our approach works by automatically exploring the space of programs that can be created from P by adding synchronization operations. To explore this (vast) space, our algorithm: (i) explores bounded error traces to detect memory access patterns that can occur under the C++ memory model but not under SC, and (ii) eliminates these error traces by adding appropriate synchronization operations. We implemented our approach using CDSCHECKER as an oracle for detecting error traces and Z3 to symbolically explore the space of possible solutions. Our tool successfully synthesized synchronization operations for several challenging concurrent algorithms, including a state of the art Read-Copy-Update (RCU) algorithm.
AB - We address the problem of synthesizing efficient and correct synchronization for programs running under the C++ relaxed memory model. Given a finite-state program P and a safety property S such that P satisfies S under a sequentially consistent (SC) memory model, our approach automatically eliminates concurrency errors in P due to the relaxed memory model, by creating a new program P with additional synchronization. Our approach works by automatically exploring the space of programs that can be created from P by adding synchronization operations. To explore this (vast) space, our algorithm: (i) explores bounded error traces to detect memory access patterns that can occur under the C++ memory model but not under SC, and (ii) eliminates these error traces by adding appropriate synchronization operations. We implemented our approach using CDSCHECKER as an oracle for detecting error traces and Z3 to symbolically explore the space of possible solutions. Our tool successfully synthesized synchronization operations for several challenging concurrent algorithms, including a state of the art Read-Copy-Update (RCU) algorithm.
UR - http://www.scopus.com/inward/record.url?scp=84985987119&partnerID=8YFLogxK
U2 - 10.1109/FMCAD.2015.7542261
DO - 10.1109/FMCAD.2015.7542261
M3 - ???researchoutput.researchoutputtypes.contributiontobookanthology.conference???
AN - SCOPUS:84985987119
T3 - Proceedings of the 15th Conference on Formal Methods in Computer-Aided Design, FMCAD 2015
SP - 120
EP - 127
BT - Proceedings of the 15th Conference on Formal Methods in Computer-Aided Design, FMCAD 2015
A2 - Kaivola, Roope
A2 - Wahl, Thomas
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 15th Conference on Formal Methods in Computer-Aided Design, FMCAD 2015
Y2 - 27 September 2015 through 30 September 2015
ER -