Getting rid of store-buffers in TSO analysis

  • Authors:
  • Mohamed Faouzi Atig;Ahmed Bouajjani;Gennaro Parlato

  • Affiliations:
  • Uppsala University, Sweden;LIAFA, CNRS and University Paris Diderot, France;LIAFA, CNRS and University Paris Diderot, France

  • Venue:
  • CAV'11 Proceedings of the 23rd international conference on Computer aided verification
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

We propose an approach for reducing the TSO reachability analysis of concurrent programs to their SC reachability analysis, under some conditions on the explored behaviors. First, we propose a linear code-to-code translation that takes as input a concurrent program P and produces a concurrent program P′ such that, running P′ under SC yields the same set of reachable (shared) states as running P under TSO with at most k context-switches for each thread, for a fixed k. Basically, we show that it is possible to use only O(k) additional copies of the shared variables of P as local variables to simulate the store buffers, even if they are unbounded. Furthermore, we show that our translation can be extended so that an unbounded number of context-switches is possible, under the condition that each write operation sent to the store buffer stays there for at most k contextswitches of the thread. Experimental results show that bugs due to TSO can be detected with small bounds, using off-the-shelf SC analysis tools.