Deadlock Detection for Concurrent Programs Using Resource Footprints
Sonam Sherpa, Abdi Yamil Vicenciodelmoral, Xinghui Zhao · 2019
Concurrency bugs are difficult to diagnose and fix, due to the nature of the bugs and how they manifest themselves during execution. Traditional approaches for diagnosing concurrency bugs attempt to reproduce the exact execution schedule which reveals the bug, resulting in high runtime overhead. In this paper, we present our work in identifying concurrency bugs using resource consumption footprints. This is based on the observation that resource access and consumption patterns are critical indications of the run-time behavior of concurrent software, and can be used as a powerful mechanism to guide the software debugging process. We demonstrate that monitoring resource footprints at runtime can effectively help detect software bugs. Specifically, for MPI programs, a simple SVM classifier can detect deadlocks with high accuracy using only the CPU usage patterns.