This is actually a leftover of the recursive read deadlock detection patchset: https://lore.kernel.org/lkml/20180411135647.21496-1-boqun.feng@xxxxxxxxx/ I resolve comments then and add more test cases, and hopefully this can fulfill the request from KVM: https://lore.kernel.org/lkml/a14a13a690277d4cc95a4b26aa2d9a4d9b392a74.camel@xxxxxxxxxxxxx/ ;-) The patch #3 is now WIP for two reasons: * It may conflicts with Paul's patchset on removing CONFIG_SRCU * I haven't found a proper way to "reinit" srcu_struct when lockdep selftest runs: cleanup_srcu_struct() needs workqueue however the tests can run before there is one. Anyway, these selftests prove the detection actually works. And as always, feedbacks and comments are welcome! Regards, Boqun Boqun Feng (3): locking/lockdep: Introduce lock_sync() rcu: Equip sleepable RCU with lockdep dependency graph checks WIP: locking/lockdep: selftests: Add selftests for SRCU include/linux/lockdep.h | 5 +++ include/linux/srcu.h | 23 +++++++++++-- kernel/locking/lockdep.c | 34 +++++++++++++++++++ kernel/rcu/srcutiny.c | 2 ++ kernel/rcu/srcutree.c | 2 ++ lib/locking-selftest.c | 71 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 135 insertions(+), 2 deletions(-) -- 2.38.1