Dynamic Verification of C/C++11 Concurrency over Multi Copy Atomics
Sanjana Singh, Divyanjali Sharma, Subodh Sharma

TL;DR
This paper presents MoCA, a dynamic verification technique for C11 programs under Multi-Copy-Atomic semantics, accurately capturing allowed executions and reducing false safety violations in concurrent program analysis.
Contribution
We introduce MoCA, a new dynamic verification method that precisely models MCA semantics for C11, improving accuracy over existing techniques.
Findings
MoCA captures all coherent C11 executions under MCA.
MoCA reduces false safety violations compared to prior methods.
Experimental results confirm MoCA's precision and effectiveness.
Abstract
We investigate the problem of runtime analysis of C11 programs under Multi-Copy-Atomic semantics (MCA). Under MCA, one can analyze program outcomes solely through interleaving and reordering of thread events. As a result, obtaining intuitive explanations of program outcomes becomes straightforward. Newer versions of ARM (ARMv8 and later), Alpha, and Intel's x-86 support MCA. Our tests reveal that state-of-the-art dynamic verification techniques that analyze program executions under the C11 memory model generate safety property violations that can be interpreted as false alarms under MCA semantics. Sorting the true from false violations puts an undesirable burden on the user. In this work, we provide a dynamic verification technique (MoCA) to analyze C11 program executions which are permitted under the MCA model. We design a happens-before relation and introduce coherence rules to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Security and Verification in Computing · Parallel Computing and Optimization Techniques
