kirancodes.me
To Proof Maintenance & Beyond!

Thread-modular static analysis for relaxed memory models

Markus Kusano, Chao Wang

Abstract

We propose a memory-model-aware static program analysis method for accurately analyzing the behavior of concurrent software running on processors with weak consistency models such as x86-TSO, SPARC-PSO, and SPARC-RMO. At the center of our method is a unified framework for deciding the feasibility of inter-thread interferences to avoid propagating spurious data flows during static analysis and thus boost the performance of the static analyzer. We formulate the checking of interference feasibility as a set of Datalog rules which are both efficiently solvable and general enough to capture a range of hardware-level memory models. Compared to existing techniques, our method can significantly reduce the number of bogus alarms as well as unsound proofs. We implemented the method and evaluated it on a large set of multithreaded C programs. Our experiments show the method significantly outperforms state-of-the-art techniques in terms of accuracy with only moderate runtime overhead.

BibTeX
@inproceedings{Kusano-Wang:FSE17,
  author    = {Markus Kusano and
               Chao Wang},
  title     = {Thread-modular static analysis for relaxed memory models},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {337--348},
  publisher = {{ACM}},
  year      = {2017},
}

Related papers