Dynamic Verification of C/C++11 Concurrency over Multi Copy Atomics

03/02/2021
by   Sanjana Singh, et al.
0

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 capture precisely those C11 program executions which are allowed under the MCA model. MoCA's exploration of the state-space is based on the state-of-the-art dynamic verification algorithm, source-DPOR. Our experiments validate that MoCA captures all coherent C11 program executions, and is precise for the MCA model.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/10/2019

Dynamic Verification with Observational Equivalence of C/C++ Concurrency

Program executions under relaxed memory model (rmm) semantics are signif...
research
07/26/2021

Logical Characterization of Coherent Uninterpreted Programs

An uninterpreted program (UP) is a program whose semantics is defined ov...
research
10/24/2019

What's Decidable About Program Verification Modulo Axioms?

We consider the decidability of the verification problem of programs mod...
research
04/01/2019

A benchmark for C program verification

We present twenty-five C programs, as a benchmark for C program verifica...
research
05/30/2021

A Rice's Theorem for Abstract Semantics

Classical results in computability theory, notably Rice's theorem, focus...
research
01/07/2019

Different Maps for Different Uses. A Program Transformation for Intermediate Verification Languages

In theorem prover or SMT solver based verification, the program to be ve...
research
08/02/2018

Optimal Stateless Model Checking under the Release-Acquire Semantics

We present a framework for efficient application of stateless model chec...

Please sign up or login with your details

Forgot password? Click here to reset