October 3, 2019

218 words 2 mins read

Recursive Read Deadlocks and Where to Find Them

Recursive Read Deadlocks and Where to Find Them

Lockdep (the deadlock detector in the Linux kernel) is a powerful tool to detect deadlocks, and has been used for a long time by kernel developers. However, when comes to read/write lock deadlock dete …

Talk Title Recursive Read Deadlocks and Where to Find Them
Speakers Boqun Feng (Software Engineer, Huawei)
Conference KubeCon + CloudNativeCon
Conf Tag
Location Shanghai, China
Date Jun 23-26, 2019
URL Talk Page
Slides Talk Slides
Video

Lockdep (the deadlock detector in the Linux kernel) is a powerful tool to detect deadlocks, and has been used for a long time by kernel developers. However, when comes to read/write lock deadlock detections, lockdep only has limited support. Another thing makes this limited support worse is some major architectures (x86 and arm64) has switched or is trying to switch its rwlock implementation to queued rwlock. One example is we found some deadlock cases that happened in kernel but we could not detect it with lockdep. To improve this situation, a patchset to support read/write deadlock detection in lockdep has been post to lkml and got to its v6. This topic will give a brief introduction on rwlock related deadlocks (recursive read deadlocks) and how we can tweak lockdep to detect them. It will focus on the detection algorithm and its correctness, but also some implementation details.

comments powered by Disqus