DRDet: Efficiently Making Data Races Deterministic

Chen CHEN  Kai LU  Xiaoping WANG  Xu ZHOU  Zhendong WU  

IEICE TRANSACTIONS on Information and Systems   Vol.E97-D   No.10   pp.2676-2684
Publication Date: 2014/10/01
Online ISSN: 1745-1361
DOI: 10.1587/transinf.2014EDP7067
Type of Manuscript: PAPER
Category: Software Engineering
determinism,  data-race detection,  alias analysis,  static analysis,  

Full Text: PDF(1.1MB)>>
Buy this Article

Strongly deterministic multithreading provides determinism for multithreaded programs even in the presence of data races. A common way to guarantee determinism for data races is to isolate threads by buffering shared memory accesses. Unfortunately, buffering all shared accesses is prohibitively costly. We propose an approach called DRDet to efficiently make data races deterministic. DRDet leverages the insight that, instead of buffering all shared memory accesses, it is sufficient to only buffer memory accesses involving data races. DRDet uses a sound data-race detector to detect all potential data races. These potential data races, along with all accesses which may access the same set of memory objects, are flagged as data-race-involved accesses. Unsurprisingly, the imprecision of static analyses makes a large fraction of shared accesses to be data-race-involved. DRDet employs two optimizations which aim at reducing the number of accesses to be sent to query alias analysis. We implement DRDet on CoreDet, a state-of-the-art deterministic multithreading system. Our empirical evaluation shows that DRDet reduces the overhead of CoreDet by an average of 1.6X, without weakening determinism and scalability.