Rob O'Callahan

Efficient and Precise Dynamic Race Detection for Object Oriented Programs

Concurrent shared-memory programs exhibit data races when thread scheduling decisions lead to changes in output. Data races are very hard to detect and debug because error-inducing schedules may be extremely rare and hard to reproduce. Dynamic data race detection tools monitor a running program and use heuristics to detect problems that can lead to data races, such as violation of locking disciplines. We have built a dynamic race detector that checks for violations of a very simple rule, namely that whenever two threads access a common shared memory location, they must do so holding at least one lock in common. We show that with two small enhancements, this rule reveals dangerous races in real programs and seldom produces spurious warnings. Previous race detectors of comparable accuracy impose an order of magnitude overhead in run time. We describe static and dynamic ptimization techniques which reduce the overhead to 13-42% in our benchmark! s, faster even than other less accurate detectors.

This talk describes work done by Jong-Deok Choi, Keunwoo Lee, Alexey Loginov, Robert O'Callahan, Vivek Sarkar, and Manu Sridharan, with the help of the Jikes Research Virtual Machine (aka Jalapeno) team, and submitted to PLDI '02.

Host:  Karl Crary

Appointments: Margaret Weigand

Principles of Programming Seminars

POP Seminar
December 7, 2001
3:30 p.m.
Wean Hall 8220