Abstract

We propose an under-approximate reachability analysis algorithm for programs running under the POWER memory model, in the spirit of the work on context-bounded analysis intitiated by Qadeer et al. in 2005 for detecting bugs in concurrent programs supposed to be running under the classical SC model. To that end, we first introduce a new notion of context-bounding that is suitable for reasoning about computations under POWER, which generalizes the one defined by Atig et al. in 2011 for the TSO memory model. Then, we provide a polynomial size reduction of the context-bounded state reachability problem under POWER to the same problem under SC: Given an input concurrent program $$\mathcal {P}$$, our method produces a concurrent program $$\mathcal {P}'$$ such that, for a fixed number of context switches, running $$\mathcal {P}'$$ under SC yields the same set of reachable states as running $$\mathcal {P}$$ under POWER. The generated program $$\mathcal {P}'$$ contains the same number of processes as $$\mathcal {P}$$, and operates on the same data domain. By leveraging the standard model checker CBMC, we have implemented a prototype tool and applied it on a set of benchmarks, showing the feasibility of our approach.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call