From: Thomas Gleixner <tglx@linutronix.de>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Daniel Colascione <dancol@google.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Paul McKenney <paulmck@linux.vnet.ibm.com>,
boqun.feng@gmail.com, luto@amacapital.net, davejwatson@fb.com,
linux-kernel@vger.kernel.org, linux-api@vger.kernel.org,
Paul Turner <pjt@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux@arm.linux.org.uk, mingo@redhat.com, hpa@zytor.com,
Andrew Hunter <ahh@google.com>,
andi@firstfloor.org, cl@linux.com, bmaurer@fb.com,
rostedt@goodmis.org, josh@joshtriplett.org,
torvalds@linux-foundation.org, catalin.marinas@arm.com,
will.deacon@arm.com,
Michael Kerrisk-manpages <mtk.manpages@gmail.com>,
Joel Fernandes <joelaf@google.com>
Subject: Re: [RFC PATCH for 4.18 00/14] Restartable Sequences
Date: Sun, 6 May 2018 12:03:32 +0200 (CEST) [thread overview]
Message-ID: <alpine.DEB.2.21.1805061202550.1685@nanos.tec.linutronix.de> (raw)
In-Reply-To: <20180502202233.GV12217@hirez.programming.kicks-ass.net>
On Wed, 2 May 2018, Peter Zijlstra wrote:
> On Wed, May 02, 2018 at 06:27:22PM +0000, Daniel Colascione wrote:
> > On Wed, May 2, 2018 at 10:22 AM Peter Zijlstra <peterz@infradead.org> wrote:
> > >> On Wed, May 02, 2018 at 03:53:47AM +0000, Daniel Colascione wrote:
> > > > Suppose we make a userspace mutex implemented with a lock word having
> > three
> > > > bits: acquired, sleep_mode, and wait_pending, with the rest of the word
> > not
> > > > being relevant at the moment.
> >
> > > So ideally we'd kill FUTEX_WAIT/FUTEX_WAKE for mutexes entirely, and go
> > > with FUTEX_LOCK/FUTEX_UNLOCK that have the same semantics as the
> > > existing FUTEX_LOCK_PI/FUTEX_UNLOCK_PI, namely, the word contains the
> > > owner TID.
> >
> > That doesn't work if you want to use the rest of the word for something
> > else, like a recursion count. With FUTEX_WAIT and FUTEX_WAKE, you can make
> > a lock with two bits.
>
> Recursive locks are teh most horrible crap ever. And having the tid in
> the word allows things like kernel based optimistic spins and possibly
> PI related things.
FWIW, robust futex have also the TID requirement.
Thanks,
tglx
prev parent reply other threads:[~2018-05-06 10:03 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-30 22:44 [RFC PATCH for 4.18 00/14] Restartable Sequences Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 01/14] uapi headers: Provide types_32_64.h (v2) Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 02/14] rseq: Introduce restartable sequences system call (v13) Mathieu Desnoyers
2018-05-16 16:24 ` Peter Zijlstra
2018-05-16 20:18 ` Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 03/14] arm: Add restartable sequences support Mathieu Desnoyers
2018-05-16 16:18 ` Peter Zijlstra
2018-05-16 20:13 ` Mathieu Desnoyers
2018-05-17 13:32 ` Will Deacon
2018-05-17 15:30 ` Mathieu Desnoyers
2018-05-22 18:19 ` Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 04/14] arm: Wire up restartable sequences system call Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 05/14] x86: Add support for restartable sequences (v2) Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 06/14] x86: Wire up restartable sequence system call Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 07/14] powerpc: Add support for restartable sequences Mathieu Desnoyers
2018-05-16 16:18 ` Peter Zijlstra
2018-05-16 20:13 ` Mathieu Desnoyers
2018-05-17 1:19 ` Boqun Feng
2018-05-17 7:43 ` Peter Zijlstra
2018-05-17 15:28 ` Mathieu Desnoyers
2018-05-17 23:50 ` Boqun Feng
2018-05-18 18:17 ` Mathieu Desnoyers
2018-05-20 14:08 ` Boqun Feng
2018-05-23 20:14 ` Mathieu Desnoyers
2018-05-23 20:46 ` Paul E. McKenney
2018-05-23 21:29 ` Mathieu Desnoyers
2018-05-24 1:03 ` Michael Ellerman
2018-05-28 7:00 ` Mathieu Desnoyers
2018-05-18 12:38 ` Michael Ellerman
2018-04-30 22:44 ` [PATCH 08/14] powerpc: Wire up restartable sequences system call Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 09/14] selftests: lib.mk: Introduce OVERRIDE_TARGETS Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 10/14] rseq: selftests: Provide rseq library (v5) Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 11/14] rseq: selftests: Provide basic test Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 12/14] rseq: selftests: Provide basic percpu ops test (v2) Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 13/14] rseq: selftests: Provide parametrized tests (v2) Mathieu Desnoyers
2018-04-30 22:44 ` [PATCH 14/14] rseq: selftests: Provide Makefile, scripts, gitignore (v2) Mathieu Desnoyers
2018-05-02 3:53 ` [RFC PATCH for 4.18 00/14] Restartable Sequences Daniel Colascione
2018-05-02 8:43 ` Peter Zijlstra
2018-05-02 16:03 ` Mathieu Desnoyers
2018-05-02 16:07 ` Daniel Colascione
2018-05-02 16:42 ` Steven Rostedt
2018-05-02 16:55 ` Daniel Colascione
2018-05-03 16:12 ` Mathieu Desnoyers
2018-05-03 16:22 ` Daniel Colascione
2018-05-03 18:04 ` Mathieu Desnoyers
2018-05-03 16:48 ` Joel Fernandes
2018-05-03 17:18 ` Daniel Colascione
2018-05-03 17:46 ` Joel Fernandes
2018-05-04 22:17 ` Ben Maurer
2018-05-02 17:22 ` Peter Zijlstra
2018-05-02 18:27 ` Daniel Colascione
2018-05-02 20:22 ` Peter Zijlstra
2018-05-02 20:37 ` Daniel Colascione
2018-05-03 1:15 ` Steven Rostedt
2018-05-03 8:49 ` Peter Zijlstra
2018-05-06 10:03 ` Thomas Gleixner [this message]
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=alpine.DEB.2.21.1805061202550.1685@nanos.tec.linutronix.de \
--to=tglx@linutronix.de \
--cc=ahh@google.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=bmaurer@fb.com \
--cc=boqun.feng@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=cl@linux.com \
--cc=dancol@google.com \
--cc=davejwatson@fb.com \
--cc=hpa@zytor.com \
--cc=joelaf@google.com \
--cc=josh@joshtriplett.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=luto@amacapital.net \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@redhat.com \
--cc=mtk.manpages@gmail.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=rostedt@goodmis.org \
--cc=torvalds@linux-foundation.org \
--cc=will.deacon@arm.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;
as well as URLs for NNTP newsgroup(s).