RaceTrackSOSP20 - RaceTrack: Efficient Detection of Data...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking Yuan Yu Microsoft Research 1065 La Avenida Ave. Mountain View, CA 94043 yuanbyu@microsoft.com Tom Rodeheffer Microsoft Research 1065 La Avenida Ave. Mountain View, CA 94043 tomr@microsoft.com Wei Chen Computer Science Division University of California Berkeley, CA 94720 wychen@cs.berkeley.edu ABSTRACT Bugs due to data races in multithreaded programs often ex- hibit non-deterministic symptoms and are notoriously dif- ficult to find. This paper describes RaceTrack, a dynamic race detection tool that tracks the actions of a program and reports a warning whenever a suspicious pattern of activity has been observed. RaceTrack uses a novel hybrid detection algorithm and employs an adaptive approach that automat- ically directs more effort to areas that are more suspicious, thus providing more accurate warnings for much less over- head. A post-processing step correlates warnings and ranks code segments based on how strongly they are implicated in potential data races. We implemented RaceTrack inside the virtual machine of Microsofts Common Language Runtime (product version v1.1.4322) and monitored several major, real-world applications directly out-of-the-box, without any modification. Adaptive tracking resulted in a slowdown ra- tio of about 3x on memory-intensive programs and typically much less than 2x on other programs, and a memory ratio of typically less than 1.2x. Several serious data race bugs were revealed, some previously unknown. Categories and Subject Descriptors: D.2.5 [Software Engineering]: Testing and Debugging diagnostics, moni- tors General Terms: Reliability, Performance. Keywords: Race detection, virtual machine instrumenta- tion. 1. INTRODUCTION A data race occurs in a multithreaded program when two threads access the same memory location without any inter- vening synchronization operations, and at least one of the accesses is a write. Data races almost always indicate a pro- gramming error and such errors are notoriously dicult to find and debug, due to the non-deterministic nature of multi- threaded programming. Since the exact schedule of threads Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SOSP05, October 2326, 2005, Brighton, United Kingdom. Copyright 2005 ACM 1-59593-079-5/05/0010 ... $ 5.00....
View Full Document

Page1 / 14

RaceTrackSOSP20 - RaceTrack: Efficient Detection of Data...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online