Effective pattern-driven concurrency bug detection for operating systems
Highlights? We identified characteristics of concurrency bugs in Linux kernel by reviewing ChangeLog bug reports. ? We developed a pattern-driven COncurrency Bug dETector (COBET) that utilizes composite bug patterns with semantic conditions to detect complex bugs. ? TWe defined four concurrency bug patterns and detected ten new bugs in Linux kernel. As multi-core hardware has become more popular, concurrent programming is being more widely adopted in software. In particular, operating systems such as Linux utilize multi-threaded techniques heavily to enhance performance. However, current analysis techniques and tools for validating concurrent programs often fail to detect concurrency bugs in operating systems (OSes) due to the complex characteristics of OSes. To detect concurrency bugs in OSes in a practical manner, we have developed the COncurrency Bug dETector (COBET) framework based on composite bug patterns augmented with semantic conditions. The effectiveness, efficiency, and applicability of COBET were demonstrated by detecting 10 new bugs in file systems, device drivers, and network modules of Linux 2.6.30.4 as confirmed by the Linux maintainers.