Back to Search Start Over

RedCard: Redundant Check Elimination for Dynamic Race Detectors

Authors :
Cormac Flanagan
Stephen N. Freund
Source :
ECOOP 2013 – Object-Oriented Programming ISBN: 9783642390371, ECOOP
Publication Year :
2013
Publisher :
Springer Berlin Heidelberg, 2013.

Abstract

Precise dynamic race detectors report an error if and only if an observed program trace exhibits a data race. They must typically check for races on all memory accesses to ensure that they catch all races and generate no spurious warnings. However, a race check for a particular memory access is guaranteed to be redundant if the accessing thread has already accessed that location within the same release-free span. A release-free span is any sequence of instructions containing no lock releases or other "release-like" synchronization operations, such as wait or fork. We present a static analysis to identify redundant race checks by reasoning about memory accesses within release-free spans. In contrast to prior whole program analyses for identifying accesses that are always race-free, our redundant check analysis is span-local and can also be made method-local without any major loss in effectiveness. RedCard, our prototype implementation for the Java language, enables dynamic race detectors to reduce the number of run-time checks by close to 40% with no loss in precision. We also present a complementary shadow proxy analysis for identifying when multiple memory locations can be treated as a single location by a dynamic race detector, again with no loss in precision. Combined, our analyses reduce the number of memory accesses requiring checks by roughly 50%.

Details

ISBN :
978-3-642-39037-1
ISBNs :
9783642390371
Database :
OpenAIRE
Journal :
ECOOP 2013 – Object-Oriented Programming ISBN: 9783642390371, ECOOP
Accession number :
edsair.doi...........e107cef461703625b3c4c7dd3e5292e3