LOFT: Redundant Synchronization Event Removal for Data Race Detection

  • Authors:
  • Yan Cai;W. K. Chan

  • Affiliations:
  • -;-

  • Venue:
  • ISSRE '11 Proceedings of the 2011 IEEE 22nd International Symposium on Software Reliability Engineering
  • Year:
  • 2011

Quantified Score

Hi-index 0.01

Visualization

Abstract

Many happens-before based techniques for multithreaded programs implement vector clocks to track incrementally the causal relations among the synchronization operations acting on threads and locks. In these detectors, every such operation results in a vector-based assignment to a vector clock, even though the assigned value is the same as the value of the vector clock right before the assignment. The cost of such vector-based operations however grows with the number of threads and the amount of such operations. It is unclear to what extent redundant assignments can be removed. Whether two consecutive assignments to the same vector clock of a thread result in the same content critically depends on the operations on the locks occurred in between these assignments. In this paper, we systematically explore the said insight and quantify a sufficient condition that can soundly remove such operations without affecting the precision of such tracking. We applied our approach on Fast Track to formulate LOFT. We evaluate LOFT using the PARSEC benchmarking suite. The result shows that, on average, LOFT removes 58.0% of all such operations incurred by Fast Track, and runs 16.2% faster than the latter in tracking the causal relations among these operations.