Testing Multithreaded Programs Via Thread Speed Control

Dongjie Chen,Yanyan Jiang,Chang Xu,Xiaoxing Ma,Jian Lu
DOI: https://doi.org/10.1145/3236024.3236077
2018-01-01
Abstract:A multithreaded program's interleaving space is discrete and astronomically large, making effectively sampling thread schedules for manifesting concurrency bugs a challenging task. Observing that concurrency bugs can be manifested by adjusting thread relative speeds, this paper presents the new concept of speed space in which each vector denotes a family of thread schedules. A multithreaded program's speed space is approximately continuous, easy-to-sample, and preserves certain categories of concurrency bugs. We discuss the design, implementation, and evaluation of our speed-controlled scheduler for exploring adversarial/abnormal schedules. The experimental results confirm that our technique is effective in sampling diverse schedules. Our implementation also found previously unknown concurrency bugs in real-world multithreaded programs.
What problem does this paper attempt to address?