Driven by the hardware shift to multi-core architectures, concurrency is being brought into mainstream software development. Unfortunately, concurrent programs are prone to concurrency bugs, because of the inherent complexity of concurrency and the sequential thinking habits of programmers. Concurrency bugs' non- deterministic property also brings a lot of trouble to developers. Improving the reliability of concurrent programs is a critical and urgent task.

This talk presents recent work on understanding, detecting, and exposing concurrency bugs. I will first present two techniques that detect concurrency bugs from the angle of programmers' synchronization intention. The first one is AVIO (technology transfer to Intel). AVIO automatically infers programmers' atomicity intentions from correct execution. It detects violations to the inferred intentions and reports concurrency bugs. The second technique is MUVI. MUVI automatically infers variable correlation relationship from the source code and detects unsynchronized concurrent accesses to correlated variables. During this talk, I will also briefly discuss some findings from our characteristics study of real-world concurrency bugs. These findings have motivated the above bug detection work and inspired us to improve concurrent program testing.

Shan Lu is a Ph.D. candidate in the Department of Computer Science at the University of Illinois at Urbana-Champaign. Her research areas are software systems and computer architecture. She is interested in the software reliability problem, with focus on concurrent software systems. She received the W.J. Poppelbaum Memorial Award from University of Illinois in 2007 for research and academic accomplishments. Her recent work on concurrency bug detection is under technology transfer to Intel and was selected into IEEE Micro Top Picks 2006.