From: Peter Zijlstra <peterz@infradead.org>
To: Christoph Hellwig <hch@infradead.org>
Cc: mingo@kernel.org, will@kernel.org, oleg@redhat.com,
tglx@linutronix.de, linux-kernel@vger.kernel.org,
bigeasy@linutronix.de, juri.lelli@redhat.com,
williams@redhat.com, bristot@redhat.com, longman@redhat.com,
dave@stgolabs.net, jack@suse.com
Subject: [PATCH] locking/rwsem: Remove RWSEM_OWNER_UNKNOWN
Date: Tue, 4 Feb 2020 10:22:28 +0100 [thread overview]
Message-ID: <20200204092228.GP14946@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <20200204085049.GN14914@hirez.programming.kicks-ass.net>
On Tue, Feb 04, 2020 at 09:50:49AM +0100, Peter Zijlstra wrote:
> Anyway, I'll go split, since you seem to care so deeply.
---
Subject: locking/rwsem: Remove RWSEM_OWNER_UNKNOWN
From: Peter Zijlstra <peterz@infradead.org>
Date: Tue Feb 4 09:34:37 CET 2020
Remove the now unused RWSEM_OWNER_UNKNOWN hack. This hack breaks
PREEMPT_RT and getting rid of it was the entire motivation for
re-writing the percpu rwsem.
The biggest problem is that it is fundamentally incompatible with any
form of Priority Inheritance, any exclusively held lock must have a
distinct owner.
Requested-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
include/linux/rwsem.h | 6 ------
kernel/locking/rwsem.c | 2 --
2 files changed, 8 deletions(-)
--- a/include/linux/rwsem.h
+++ b/include/linux/rwsem.h
@@ -53,12 +53,6 @@ struct rw_semaphore {
#endif
};
-/*
- * Setting all bits of the owner field except bit 0 will indicate
- * that the rwsem is writer-owned with an unknown owner.
- */
-#define RWSEM_OWNER_UNKNOWN (-2L)
-
/* In all implementations count != 0 means locked */
static inline int rwsem_is_locked(struct rw_semaphore *sem)
{
--- a/kernel/locking/rwsem.c
+++ b/kernel/locking/rwsem.c
@@ -659,8 +659,6 @@ static inline bool rwsem_can_spin_on_own
unsigned long flags;
bool ret = true;
- BUILD_BUG_ON(!(RWSEM_OWNER_UNKNOWN & RWSEM_NONSPINNABLE));
-
if (need_resched()) {
lockevent_inc(rwsem_opt_fail);
return false;
next prev parent reply other threads:[~2020-02-04 9:22 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-31 15:07 [PATCH -v2 0/7] locking: Percpu-rwsem rewrite Peter Zijlstra
2020-01-31 15:07 ` [PATCH -v2 1/7] locking/percpu-rwsem, lockdep: Make percpu-rwsem use its own lockdep_map Peter Zijlstra
2020-02-11 12:48 ` [tip: locking/core] " tip-bot2 for Peter Zijlstra
2020-01-31 15:07 ` [PATCH -v2 2/7] locking/percpu-rwsem: Convert to bool Peter Zijlstra
2020-02-11 12:48 ` [tip: locking/core] " tip-bot2 for Peter Zijlstra
2020-01-31 15:07 ` [PATCH -v2 3/7] locking/percpu-rwsem: Move __this_cpu_inc() into the slowpath Peter Zijlstra
2020-02-11 12:48 ` [tip: locking/core] " tip-bot2 for Peter Zijlstra
2020-01-31 15:07 ` [PATCH -v2 4/7] locking/percpu-rwsem: Extract __percpu_down_read_trylock() Peter Zijlstra
2020-02-11 12:48 ` [tip: locking/core] " tip-bot2 for Peter Zijlstra
2020-01-31 15:07 ` [PATCH -v2 5/7] locking/percpu-rwsem: Remove the embedded rwsem Peter Zijlstra
2020-02-03 11:45 ` Kirill Tkhai
2020-02-03 13:44 ` Peter Zijlstra
2020-02-03 14:33 ` Kirill Tkhai
2020-02-03 14:20 ` Christoph Hellwig
2020-02-03 15:09 ` Peter Zijlstra
2020-02-03 17:48 ` Christoph Hellwig
2020-02-04 8:50 ` Peter Zijlstra
2020-02-04 9:22 ` Peter Zijlstra [this message]
2020-02-11 12:48 ` [tip: locking/core] locking/rwsem: Remove RWSEM_OWNER_UNKNOWN tip-bot2 for Peter Zijlstra
2020-02-04 9:24 ` [PATCH -v2-mkII 5/7] locking/percpu-rwsem: Remove the embedded rwsem Peter Zijlstra
2020-02-11 12:48 ` [tip: locking/core] " tip-bot2 for Peter Zijlstra
2020-01-31 15:07 ` [PATCH -v2 6/7] locking/percpu-rwsem: Fold __percpu_up_read() Peter Zijlstra
2020-02-11 12:48 ` [tip: locking/core] " tip-bot2 for Davidlohr Bueso
2020-01-31 15:07 ` [PATCH -v2 7/7] locking/percpu-rwsem: Add might_sleep() for writer locking Peter Zijlstra
2020-01-31 19:23 ` [PATCH -v2 0/7] locking: Percpu-rwsem rewrite Waiman Long
2020-02-01 16:23 ` Davidlohr Bueso
2020-02-03 10:51 ` Sebastian Andrzej Siewior
2020-02-03 12:25 ` Juri Lelli
2020-02-03 18:08 ` Will Deacon
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=20200204092228.GP14946@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bigeasy@linutronix.de \
--cc=bristot@redhat.com \
--cc=dave@stgolabs.net \
--cc=hch@infradead.org \
--cc=jack@suse.com \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=longman@redhat.com \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=tglx@linutronix.de \
--cc=will@kernel.org \
--cc=williams@redhat.com \
/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