From: Kent Overstreet <kent.overstreet@linux.dev>
To: linux-kernel@vger.kernel.org, linux-bcachefs@vger.kernel.org,
peterz@infradead.org
Cc: boqun.feng@gmail.com, longman@redhat.com, will@kernel.org,
mingo@redhat.com, Kent Overstreet <kent.overstreet@linux.dev>
Subject: [PATCH 0/6] lockdep enhancements for bcachefs
Date: Wed, 22 Nov 2023 18:51:07 -0500 [thread overview]
Message-ID: <20231122235113.180132-1-kent.overstreet@linux.dev> (raw)
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
next reply other threads:[~2023-11-22 23:51 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-22 23:51 Kent Overstreet [this message]
2023-11-22 23:51 ` [PATCH 1/6] locking/lockdep: lock_class_is_held() Kent Overstreet
2023-11-22 23:51 ` [PATCH 2/6] locking/lockdep: lockdep_set_no_check_recursion() Kent Overstreet
2023-11-24 9:58 ` Peter Zijlstra
2023-11-24 23:29 ` Kent Overstreet
2023-11-22 23:51 ` [PATCH 3/6] bcachefs: Assert that btree node locks aren't being leaked Kent Overstreet
2023-11-22 23:51 ` [PATCH 4/6] bcachefs: Use lock_class_is_held() for btree locking asserts Kent Overstreet
2023-11-22 23:51 ` [PATCH 5/6] bcachefs: Check for btree locks held on transaction init Kent Overstreet
2023-11-22 23:51 ` [PATCH 6/6] bcachefs: Switch to lockdep_set_no_check_recursion() Kent Overstreet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231122235113.180132-1-kent.overstreet@linux.dev \
--to=kent.overstreet@linux.dev \
--cc=boqun.feng@gmail.com \
--cc=linux-bcachefs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=longman@redhat.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox