From: Will Deacon <will.deacon@arm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Chris Metcalf <cmetcalf@ezchip.com>,
Thomas Gleixner <tglx@linutronix.de>,
Oleg Nesterov <oleg@redhat.com>,
Paul McKenney <paulmck@linux.vnet.ibm.com>,
Ingo Molnar <mingo@kernel.org>,
"mtk.manpages@gmail.com" <mtk.manpages@gmail.com>,
"dvhart@infradead.org" <dvhart@infradead.org>,
"dave@stgolabs.net" <dave@stgolabs.net>,
"Vineet.Gupta1@synopsys.com" <Vineet.Gupta1@synopsys.com>,
"ralf@linux-mips.org" <ralf@linux-mips.org>,
"ddaney@caviumnetworks.com" <ddaney@caviumnetworks.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
Richard Henderson <rth@twiddle.net>
Subject: Re: futex atomic vs ordering constraints
Date: Mon, 7 Sep 2015 10:30:29 +0100 [thread overview]
Message-ID: <20150907093029.GC14244@arm.com> (raw)
In-Reply-To: <20150905175302.GV3644@twins.programming.kicks-ass.net>
On Sat, Sep 05, 2015 at 06:53:02PM +0100, Peter Zijlstra wrote:
> On Wed, Sep 02, 2015 at 02:18:53PM -0700, Linus Torvalds wrote:
> > So I think we could possibly relax the requirements (and document this
> > very clearly) to say that the futex operation must be totally ordered
> > wrt any other _user_space_ accesses by that thread. I suspect a lot of
> > architectures can then say "we may be very weakly ordered, but kernel
> > entry/exit implies enough synchronization that we do not need any
> > futher memory barriers".
>
> Right, so before sending this email I actually spoke to Ralf about this
> option, and he said that this is not actually well defined for MIPS.
>
> But we could certainly document it such and let archs for which this is
> well documented (I would expect this to be most) choose that
> implementation.
Whilst a control-dependency + exception return forms a barrier of sorts
on arm/arm64, it's not required to be transitive [1], so I wouldn't be
comfortable making that relaxation on the futex path.
Will
[1] See, for example, "ISA2+dmb+ctrlisb+dmb" at
https://www.cl.cam.ac.uk/~pes20/ppcmem/index.html#ARM
prev parent reply other threads:[~2015-09-07 9:30 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-26 18:16 futex atomic vs ordering constraints Peter Zijlstra
2015-08-29 1:33 ` Davidlohr Bueso
2015-09-01 16:38 ` Peter Zijlstra
2015-09-01 16:31 ` Will Deacon
2015-09-01 16:42 ` Peter Zijlstra
2015-09-01 16:47 ` Will Deacon
2015-09-01 19:05 ` Thomas Gleixner
2015-09-02 12:55 ` Peter Zijlstra
2015-09-02 16:10 ` Chris Metcalf
2015-09-02 17:00 ` Peter Zijlstra
2015-09-02 17:25 ` Chris Metcalf
2015-09-02 21:18 ` Linus Torvalds
2015-09-04 17:25 ` Chris Metcalf
2015-09-05 17:53 ` Peter Zijlstra
2015-09-07 9:30 ` Will Deacon [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=20150907093029.GC14244@arm.com \
--to=will.deacon@arm.com \
--cc=Vineet.Gupta1@synopsys.com \
--cc=cmetcalf@ezchip.com \
--cc=dave@stgolabs.net \
--cc=ddaney@caviumnetworks.com \
--cc=dvhart@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mingo@kernel.org \
--cc=mtk.manpages@gmail.com \
--cc=oleg@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=ralf@linux-mips.org \
--cc=rth@twiddle.net \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.