Skip to main navigation Skip to search Skip to main content

TxRace: Efficient data race detection using commodity hardware transactional memory

  • Virginia Polytechnic Institute and State University

Research output: Contribution to journalArticlepeer-review

5 Scopus citations

Abstract

Detecting data races is important for debugging shared-memory multithreaded programs, but the high runtime overhead prevents the wide use of dynamic data race detectors. This paper presents TxRace, a new software data race detector that leverages commodity hardware transactional memory (HTM) to speed up data race detection. TxRace instruments a multithreaded program to transform synchronization-free regions into transactions, and exploits the conflict detection mechanism of HTM for lightweight data race detection at runtime. However, the limitations of the current best-effort commodity HTMs expose several challenges in using them for data race detection: (1) lack of ability to pinpoint racy instructions, (2) false positives caused by cache line granularity of conflict detection, and (3) transactional aborts for non-conflict reasons (e.g., capacity or unknown). To overcome these challenges, TxRace performs lightweight HTM-based data race detection at first, and occasionally switches to slow yet precise data race detection only for the small fraction of execution intervals in which potential races are reported by HTM. According to the experimental results, TxRace reduces the average runtime overhead of dynamic data race detection from 11.68x to 4.65x with only a small number of false negatives.

Original languageEnglish
Pages (from-to)159-173
Number of pages15
JournalACM SIGPLAN Notices
Volume51
Issue number4
DOIs
StatePublished - Apr 2016

Keywords

  • Concurrency bug detection
  • Data race
  • Dynamic program analysis
  • Hardware transactional memory

Fingerprint

Dive into the research topics of 'TxRace: Efficient data race detection using commodity hardware transactional memory'. Together they form a unique fingerprint.

Cite this