Messages in this thread | | | From | Kent Overstreet <> | Subject | [PATCH 0/6] lockdep enhancements for bcachefs | Date | Wed, 22 Nov 2023 18:51:07 -0500 |
| |
This adds: - lockdep_set_no_check_recursion(), which allows lockdep checking for bcachefs six locks
bcachefs has a cycle detector for deadlock avoidance; there is no lock ordering for lockdep to check w.r.t. other btree node locks. However, we do want held btree node locks to be tracked, and lock ordering to be checked w.r.t. other locks.
- lock_class_is_held(), which we use for some extra locking assertion
We want to assert e.g. that we're not blocking on IO with btree node locks held.
Kent Overstreet (6): locking/lockdep: lock_class_is_held() locking/lockdep: lockdep_set_no_check_recursion() bcachefs: Assert that btree node locks aren't being leaked bcachefs: Use lock_class_is_held() for btree locking asserts bcachefs: Check for btree locks held on transaction init bcachefs: Switch to lockdep_set_no_check_recursion()
fs/bcachefs/btree_gc.c | 3 +++ fs/bcachefs/btree_iter.c | 2 ++ fs/bcachefs/btree_locking.c | 14 ++++++++--- fs/bcachefs/btree_types.h | 1 + include/linux/lockdep.h | 10 ++++++++ include/linux/lockdep_types.h | 2 +- kernel/locking/lockdep.c | 46 +++++++++++++++++++++++++++++++++++ 7 files changed, 73 insertions(+), 5 deletions(-)
-- 2.42.0
| |