[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210409025131.4114078-1-willy@infradead.org>
Date: Fri, 9 Apr 2021 03:51:14 +0100
From: "Matthew Wilcox (Oracle)" <willy@...radead.org>
To: neilb@...e.de, peterz@...radead.org, mingo@...hat.com,
will@...nel.org, longman@...hat.com, boqun.feng@...il.com,
tglx@...utronix.de, bigeasy@...utronix.de
Cc: "Matthew Wilcox (Oracle)" <willy@...radead.org>,
linux-kernel@...r.kernel.org
Subject: [PATCH 00/17] Provide lockdep tracking for bit spin locks
Since bit spin locks are only a single bit, there's nowhere to put
a lockdep map. Fortunately, all bit spin locks in the kernel are
conceptually in only a few classes of lock, and by introducing the
split_lock as somewhere to store the lockdep_map, we can track each bit
spin lock's dependencies.
This split_lock would also give us somewhere to queue waiters, should we
choose to do that. Or a centralised place to handle PREEMPT_RT mutexes.
But I'll leave that for someone who knows what they're doing; for now
this keeps the same implementation.
Matthew Wilcox (Oracle) (17):
x86: Rename split_lock_init to sld_init
locking: Add split_lock
bit_spinlock: Prepare for split_locks
hlist_bl: Prepare for split_locks
dm-snap: Add dm_exceptional_lock
dcache: Add d_hash_lock
fscache: Add cookie_hash_lock
gfs2: Add qd_hash_lock
mbcache: Add mb_cache_lock
hlist_bl: Make the split_lock parameter mandatory
s390: Add airq_iv_lock
zram: Add zram_table_lock
jbd2: Add jbd2_jh_lock
slub: Add slab_page_lock
zsmalloc: Add zs_pin_lock
rhashtable: Convert to split_lock
bit_spinlock: Track bit spin locks with lockdep
arch/s390/include/asm/airq.h | 5 +++--
arch/x86/kernel/cpu/intel.c | 6 +++---
drivers/block/zram/zram_drv.c | 8 ++++---
drivers/md/dm-snap.c | 10 +++++----
drivers/s390/cio/airq.c | 3 +++
fs/dcache.c | 25 +++++++++++-----------
fs/fscache/cookie.c | 13 ++++++------
fs/gfs2/quota.c | 5 +++--
fs/jbd2/journal.c | 18 +++++++++-------
fs/mbcache.c | 25 +++++++++++-----------
include/linux/bit_spinlock.h | 39 ++++++++++++++++++++++++++++++-----
include/linux/jbd2.h | 10 +++++----
include/linux/list_bl.h | 15 ++++++++++----
include/linux/rhashtable.h | 20 +++++++-----------
include/linux/split_lock.h | 37 +++++++++++++++++++++++++++++++++
lib/rhashtable.c | 5 +----
mm/slub.c | 6 ++++--
mm/zsmalloc.c | 11 +++++++---
18 files changed, 174 insertions(+), 87 deletions(-)
create mode 100644 include/linux/split_lock.h
--
2.30.2
Powered by blists - more mailing lists