All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Maciej W. Rozycki" <macro@imgtec.com>
To: Will Deacon <will.deacon@arm.com>
Cc: "David Daney" <ddaney@caviumnetworks.com>,
	"Måns Rullgård" <mans@mansr.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Ralf Baechle" <ralf@linux-mips.org>,
	linux-kernel@vger.kernel.org,
	"Paul McKenney" <paulmck@linux.vnet.ibm.com>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	boqun.feng@gmail.com
Subject: Re: [RFC][PATCH] mips: Fix arch_spin_unlock()
Date: Wed, 27 Jan 2016 12:41:29 +0000	[thread overview]
Message-ID: <alpine.DEB.2.00.1601271224550.5958@tp.orcam.me.uk> (raw)
In-Reply-To: <20160127114348.GF2390@arm.com>

On Wed, 27 Jan 2016, Will Deacon wrote:

> >  Overall I think it should be safe after all to use SYNC_RELEASE and other 
> > modern lightweight barriers uncondtionally under the assumption that 
> > architecture was meant to remain backward compatible.  Even though it 
> > might be possible someone would implement unusual semantics for the then 
> > undefined `stype' values, I highly doubt it as it would be extra effort 
> > and hardware logic space for no gain.  We could try and reach architecture 
> > overseers to double-check whether the `stype' encodings, somewhat 
> > irregularly distributed, were indeed defined in a manner so as not to 
> > clash with values implementers chose to use before rev. 2.61 of the 
> > architecture specification.
> 
> Do you know whether a SYNC 18 (RELEASE) followed in program order by a
> SYNC 17 (ACQUIRE) creates a full barrier (i.e. something like SYNC 16)?

 By my reading of architecture specifications it does.  Specifically 
SYNC_RELEASE (18) applies to older loads and stores, and newer stores, and 
SYNC_ACQUIRE (17) applies to older loads, and newer loads and stores.  So 
the two combined ought to be the equivalent to SYNC_MB (16), which applies 
to both older and newer loads and stores.  Of course care has to be taken 
about what happens between SYNC_RELEASE and SYNC_ACQUIRE.  This is still 
more lightweight than classic SYNC (0).  See the architecture documents, 
e.g. the MIPS32 one[1] for details.

References:

[1] "MIPS Architecture For Programmers, Volume II-A: The MIPS32 
    Instruction Set", MIPS Technologies, Inc., Document Number: MD00086,
    Revision 5.04, December 11, 2013, Table 4.7 "Encodings of the 
    Bits[10:6] of the SYNC instruction; the SType Field", p. 305

 HTH,

  Maciej

  reply	other threads:[~2016-01-27 12:41 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-12 12:31 [RFC][PATCH] mips: Fix arch_spin_unlock() Peter Zijlstra
2015-11-12 12:35 ` Peter Zijlstra
2015-11-12 13:31 ` Måns Rullgård
2015-11-12 14:32 ` Paul E. McKenney
2015-11-12 14:50   ` Måns Rullgård
2015-11-12 14:59     ` Paul E. McKenney
2015-11-12 17:46 ` David Daney
2015-11-12 18:00   ` Peter Zijlstra
2015-11-12 18:13   ` Måns Rullgård
2015-11-12 18:17     ` David Daney
2016-01-27  9:57       ` Maciej W. Rozycki
2016-01-27 11:43         ` Will Deacon
2016-01-27 12:41           ` Maciej W. Rozycki [this message]
2016-01-28  1:11             ` Boqun Feng
2016-01-27 14:54           ` Peter Zijlstra
2016-01-27 15:21             ` Will Deacon
2016-01-27 23:38               ` Paul E. McKenney
2016-01-28  9:57                 ` Will Deacon
2016-01-28 22:31                   ` Paul E. McKenney
2016-01-29  9:59                     ` Will Deacon
2016-01-29 10:22                       ` Paul E. McKenney
2016-02-01 13:56                         ` Will Deacon
2016-02-02  3:54                           ` Paul E. McKenney
2016-02-02  5:19                             ` Boqun Feng
2016-02-02  6:44                               ` Paul E. McKenney
2016-02-02  8:07                                 ` Linus Torvalds
2016-02-02  8:19                                   ` Linus Torvalds
2016-02-02  9:34                                     ` Boqun Feng
2016-02-02 17:30                                       ` Linus Torvalds
2016-02-02 17:51                                         ` Will Deacon
2016-02-02 18:06                                           ` Linus Torvalds
2016-02-02 19:30                                             ` Will Deacon
2016-02-02 19:55                                               ` Linus Torvalds
2016-02-03 19:13                                                 ` Will Deacon
2016-02-03  8:33                                               ` Ingo Molnar
2016-02-03 13:32                                                 ` Will Deacon
2016-02-03 19:03                                                   ` Will Deacon
2016-02-09 11:23                                                     ` Ingo Molnar
2016-02-09 11:42                                                       ` Will Deacon
2016-02-02 12:02                                     ` Paul E. McKenney
2016-02-02 17:56                                       ` Linus Torvalds
2016-02-02 22:30                                         ` Paul E. McKenney
2016-02-02 14:49                                     ` Ralf Baechle
2016-02-02 14:54                                       ` Måns Rullgård
2016-02-02 14:58                                         ` Ralf Baechle
2016-02-02 15:51                                           ` Måns Rullgård
2016-02-02 17:23                                 ` Peter Zijlstra
2016-02-02 22:38                                   ` Paul E. McKenney
2016-02-02 11:45                               ` Will Deacon
2016-02-02 12:12                                 ` Boqun Feng
2016-02-02 12:20                                   ` Will Deacon
2016-02-02 13:18                                     ` Boqun Feng
2016-02-02 17:12                                     ` Paul E. McKenney
2016-02-02 17:37                                       ` 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=alpine.DEB.2.00.1601271224550.5958@tp.orcam.me.uk \
    --to=macro@imgtec.com \
    --cc=boqun.feng@gmail.com \
    --cc=ddaney@caviumnetworks.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mans@mansr.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=ralf@linux-mips.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 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.