This preview has intentionally blurred sections. Sign up to view the full version.View Full 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 [email protected] Tom Rodeheffer Microsoft Research 1065 La Avenida Ave. Mountain View, CA 94043 [email protected] Wei Chen Computer Science Division University of California Berkeley, CA 94720 [email protected] 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 Microsoft’s 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 diﬃcult 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. SOSP’05, October 23–26, 2005, Brighton, United Kingdom. Copyright 2005 ACM 1-59593-079-5/05/0010 ... $ 5.00....
View Full Document
This note was uploaded on 12/14/2011 for the course CS 690 taught by Professor Staff during the Fall '11 term at University of Alabama - Huntsville.
- Fall '11
- Computer Science