Deadlock prediction via generalized dependency
Deadlock prediction via generalized dependency
复制标题
DOI:
10.1145/3533767.3534377
复制
发表时间:
2022-07
期刊:
影响因子:
--
通讯作者:
Jinpeng Zhou;Hanmei Yang;J. Lange;Tongping Liu
中科院分区:
文献类型:
--
作者:
Jinpeng Zhou;Hanmei Yang;J. Lange;Tongping Liu
Deadlocks are notorious bugs in multithreaded programs, causing serious reliability issues. However, they are difficult to be fully expunged before deployment, as their appearances typically depend on specific inputs and thread schedules, which require the assistance of dynamic tools. However, existing deadlock detection tools mainly focus on locks, but cannot detect deadlocks related to condition variables. This paper presents a novel approach to fill this gap. It extends the classic lock dependency to generalized dependency by abstracting the signal for the condition variable as a special resource so that communication deadlocks can be modeled as hold-and-wait cycles as well. It further designs multiple practical mechanisms to record and analyze generalized dependencies. In the end, this paper presents the implementation of the tool, called UnHang. Experimental results on real applications show that UnHang is able to find all known deadlocks and uncover two new deadlocks. Overall, UnHang only imposes around 3% performance overhead and 8% memory overhead, making it a practical tool for the deployment environment.