Recursive Read Deadlocks and Where to Find Them
summary
Patchset adds recursive read detection to lockdep, landing as v6 on lkml, to catch deadlocks missed by existing checks after architectures move to queued rwlock. It implements a strong dependency cycle algorithm that classifies locks as recursive/nonrecursive reader or writer, generates dependencies at runtime, and rules out false positives. Kernel code changes and tests prove the dynamic lockdep trace finds real recursive-read deadlocks and remains consistent with prior lockdep self-tests.
AI-written summary · about
chapters (5)
- 0:00Start
- 10:01More deadlock cases
- 20:17Definition of "strong" dependencies Chaining lock dependencies via block conditions
- 23:02Deadlock condition
- 25:27Implementation
related talks
15mWhat Lockdep Does and Doesn't
20mDLOS: Effective Static Detection of Deadlocks in OS Kernels
24mStatic Deadlock Detection for Go
15mThe life cycle of the mm_struct
25mKernel Self-Protection Project
54mCatching Real-time Safety Violations in C++
38mHow I started chasing speculative type confusion bugs in the kernel and ended up wi...
43mUsing Undocumented CPU Behavior to See Into Kernel Mode and Break KASLR in the Process
