C11Tester: A Race Detector for C/C++ Atomics Technical Report
Weiyu Luo, Brian Demsky

TL;DR
C11Tester is a novel race detection tool for C/C++ that explores a broader range of memory behaviors, including ARM-specific ones, using a new constraint-based algorithm to improve detection accuracy.
Contribution
It introduces a new constraint-based algorithm for exploring C11 memory behaviors, including ARM-specific behaviors, enhancing race detection capabilities.
Findings
C11Tester explores a larger fragment of the C/C++ memory model.
C11Tester outperforms existing tools in detecting data races.
C11Tester effectively handles behaviors exhibited by ARM processors.
Abstract
Writing correct concurrent code that uses atomics under the C/C++ memory model is extremely difficult. We present C11Tester, a race detector for the C/C++ memory model that can explore executions in a larger fragment of the C/C++ memory model than previous race detector tools. Relative to previous work, C11Tester's larger fragment includes behaviors that are exhibited by ARM processors. C11Tester uses a new constraint-based algorithm to implement modification order that is optimized to allow C11Tester to make decisions in terms of application-visible behaviors. We evaluate C11Tester on several benchmark applications, and compare C11Tester's performance to both tsan11rec, the state of the art tool that controls scheduling for C/C++; and tsan11, the state of the art tool that does not control scheduling.
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
TopicsParallel Computing and Optimization Techniques · Distributed systems and fault tolerance · Advanced Data Storage Technologies
