DocumentCode :
509946
Title :
Finding concurrency bugs with context-aware communication graphs
Author :
Lucia, Brandon ; Ceze, Luis
Author_Institution :
Dept. of Comput. Sci. & Eng., Univ. of Washington, Seattle, WA, USA
fYear :
2009
fDate :
12-16 Dec. 2009
Firstpage :
553
Lastpage :
563
Abstract :
Incorrect thread synchronization often leads to concurrency bugs that manifest nondeterministically and are difficult to detect and fix. Past work on detecting concurrency bugs has addressed the general problem in an ad-hoc fashion, focusing mostly on data races and atomicity violations. Using graphs to represent a multithreaded program execution is very natural, nodes represent static instructions and edges represent communication via shared memory. In this paper we make the fundamental observation that such basic context-oblivious graphs do not encode enough information to enable accurate bug detection. We propose context-aware communication graphs, a new kind of communication graph that encodes global ordering information by embedding communication contexts. We then build Bugaboo, a simple and generic framework that accurately detects complex concurrency bugs. Our framework collects communication graphs from multiple executions and uses invariant-based techniques to detect anomalies in the graphs. We built two versions of Bugaboo: BB-SW, which is fully implemented in software but suffers from significant slowdowns; and BB-HW, which relies on custom architecture support but has negligible performance degradation. BB-HW requires modest extensions to a commodity multicore processor and can be used in deployment settings. We evaluate both versions using applications such as MySQL, Apache, PARSEC, and several others. Our results show that Bugaboo identifies a wide variety of concurrency bugs, including challenging multivariable bugs, with few (often zero) unnecessary code inspections.
Keywords :
graph theory; multi-threading; multiprocessing programs; program debugging; ubiquitous computing; Apache; BB-HW; BB-SW; Bugaboo; MySQL; PARSEC; anomaly detection; atomicity violations; concurrency bugs detection; context-aware communication graphs; data races; global ordering information; multicore processor; multithreaded program execution; shared memory; static instructions; Application software; Computer architecture; Computer bugs; Concurrent computing; Context; Degradation; Inspection; Multicore processing; Software performance; Yarn; Design; Reliability;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Microarchitecture, 2009. MICRO-42. 42nd Annual IEEE/ACM International Symposium on
Conference_Location :
New York, NY
ISSN :
1072-4451
Print_ISBN :
978-1-60558-798-1
Type :
conf
Filename :
5374975
Link To Document :
بازگشت