DocumentCode :
1565653
Title :
ReEnact: using thread-level speculation mechanisms to debug data races in multithreaded codes
Author :
Prvulovic, Milos ; Torrellas, Josep
Author_Institution :
Illinois Univ., Urbana, IL, USA
fYear :
2003
Firstpage :
110
Lastpage :
121
Abstract :
While removing software bugs consumes vast amounts of human time, hardware support for debugging in modern computers remains rudimentary. Fortunately, we show that mechanisms for thread level speculation (TLS) can be reused to boost debugging productivity. Most notably, TLS´s rollback capabilities can be extended to support rolling back recent buggy execution and repeating it as many times as necessary until the bug is fully characterized. These incremental reexecutions are deterministic even in multithreaded codes. Importantly, this operation can be done automatically on the fly, and is compatible with production runs. As a specific implementation of a TLS-based debugging framework, we introduce ReEnact. ReEnact targets a particularly hairy class of bugs: data races in multithreaded programs. ReEnact extends the communication monitoring mechanisms in TLS to also detect data races. It extends TLS´s rollback capabilities to be able to roll back and deterministically reexecute the code with races to obtain the race signature. Finally, the signature is compared to a library of race patterns and, if a match occurs, the execution may be repaired. Overall, ReEnact successfully detects, characterizes, and often repairs races automatically on the fly. Moreover, it is fully compatible with always-on use in production runs: the slowdown of race-free execution with ReEnact is on average only 5.8%.
Keywords :
computer debugging; multi-threading; parallel programming; program debugging; ReEnact framework; TLS; debug data race; multithreaded program; multithreaded programs; rollback capabilities; software bugs; thread level speculation mechanisms; Computer bugs; Hardware; Humans; Libraries; Monitoring; Pattern matching; Production; Productivity; Software debugging; Yarn;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Computer Architecture, 2003. Proceedings. 30th Annual International Symposium on
ISSN :
1063-6897
Print_ISBN :
0-7695-1945-8
Type :
conf
DOI :
10.1109/ISCA.2003.1206993
Filename :
1206993
Link To Document :
بازگشت