Data race detection on compressed traces

  title={Data race detection on compressed traces},
  author={Dileep Kini and Umang Mathur and Mahesh Viswanathan},
  journal={Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering},
  • Dileep Kini, Umang Mathur, Mahesh Viswanathan
  • Published 23 July 2018
  • Computer Science
  • Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
We consider the problem of detecting data races in program traces that have been compressed using straight line programs (SLP), which are special context-free grammars that generate exactly one string, namely the trace that they represent. We consider two classical approaches to race detection --- using the happens-before relation and the lockset discipline. We present algorithms for both these methods that run in time that is linear in the size of the compressed, SLP representation. Typical… 

Figures and Tables from this paper

Atomicity Checking in Linear Time using Vector Clocks
A novel single pass linear time algorithm that uses vector clocks to detect violations of conflict serializability in an online setting and experiments show that AeroDrome scales to traces with a large number of events with significant speedup.
Model-Checking Task Parallel Programs for Data-Race
Model checking for data-race is presented here, in contrast to recent work using run-time monitoring, log analysis, or static analysis which are complete or sound but never both, and shows a significant reduction in the time required for proving data race freedom.
Model-checking task-parallel programs for data-race
A model checking algorithm is defined that enumerates all orders of mutual exclusion to prove data-race freedom over all schedules on the given input and is evaluated in a Java implementation of Habanero using the JavaPathfinder model checker.
Performance Evaluation of Data Race Detection Based on Thread Sharing Analysis With Different Granularities: An Empirical Study
The results show that data race detection based on the TSA with “field + array element” granularity outperforms those with object and field granularities.
Checking LTL[F,G,X] on compressed traces in polynomial time
The problem of checking if an execution trace, compressed using a grammar-based lossless compression scheme, satisfies a specification expressed in linear temporal logic, without explicitly decompressing it can be solved in polynomial time for the fragment LTL.


Ju l 2 01 8 Data Race Detection on Compressed Traces
This work considers two classical approaches to race detection—using the happens-before relation and the lockset discipline and presents algorithms for both these methods that run in time that is linear in the size of the compressed, SLP representation.
Generating Data Race Witnesses by an SMT-Based Analysis
An algorithm for generating debugging aid information called witnesses, which are concrete thread schedules that can deterministically trigger the data races, is proposed and precisely encodes the sequential consistency semantics using a scalable predictive model to ensure that the reported witness is always feasible.
Efficient detection of determinacy races in Cilk programs
A provably efficient determinacy-race detector for Cilk, an algorithmic multithreaded programming language, that determines at least one location in the program that is subject to a determinacy race and certifies that the program is race free when run on the data set.
Dynamic race prediction in linear time
A new relation weak-causally-precedes (WCP) is presented that is provably better than CP in terms of being able to detect more races, while still remaining sound and admits a linear time algorithm which works on the entire execution without having to fragment it.
Sound predictive race detection in polynomial time
This work introduces a new relation, causally-precedes (CP), which generalizes happens-before to observe more races without sacrificing soundness, and applies it to real-world programs to demonstrate that the unique aspects of CP result in practical benefit.
Efficient on-the-fly data race detection in multithreaded C++ programs
A novel testing tool, called MultiRace, which combines improved versions of Djit and Lockset---two very powerful on-the-fly algorithms for dynamic detection of apparent data races, and shows that the overheads imposed by MultiRace are often much smaller than those obtained by other existing dynamic techniques.
RELAY: static race detection on millions of lines of code
This work presents RELAY, a static and scalable race detection analysis in which unsoundness is modularized to a few sources and describes the analysis and results from the experiments using RELAY to find data races in the Linux kernel, which includes about 4.5 million lines of code.
Object race detection
An on-the-fly mechanism that detects access conflicts in executions of multi-threaded Java programs and reduces the runtime overhead of detecting access conflicts to about 16-129% in time and less than 25% in space.
Practical static race detection for Java parallel loops
IteRace is a set of techniques that are specialized to use the intrinsic thread, safety, and data-flow structure of collections and of the new loop-parallelism mechanism to be introduced in Java 8, and is fast and precise enough to be practical.
LOCKSMITH: Practical static race detection for C
This article describes each of Locksmith's component analyses precisely, and presents systematic measurements that isolate interesting trade-offs between precision and efficiency in each analysis, finding that context sensitivity yields a much more precise analysis, though with decreased scalability.