lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 14 Jul 2014 13:57:38 +0200
From:	Peter Zijlstra <>
To:	"Paul E. McKenney" <>
Subject: Re: [PATCH tip/core/rcu 3/4] documentation: Add acquire/release
 barriers to pairing rules

On Tue, Jul 08, 2014 at 08:31:17AM -0700, Paul E. McKenney wrote:

> Good point, how about the following?
> 	General barriers pair with each other, though they also pair
> 	with most other types of barriers, albeit without transitivity.

> 	An acquire barrier pairs with a release barrier, but both may also
> 	pair with other barriers, including of course general barriers.

> 	A write barrier pairs with a data dependency barrier, an acquire
> 	barrier, a release barrier, a read barrier, or a general barrier.

> 	Similarly a read barrier or a data dependency barrier pairs
> 	with a write barrier, an acquire barrier, a release barrier,
> 	or a general barrier:

It might be clearer with the added whitespace, or as an explicit list  I
suppose, but yes.

> > Also, it might be good to have a section on the ramifications of pairing
> > acquire/release with other than themselves, I have the feeling there's
> > subtle things there.
> It can get quite subtle.  For the time being, I am dodging this subtlety
> by saying that only general barriers provide transitivity (see the
> "TRANSITIVITY" section).

Ah, I was more thinking of the fact that ACQUIRE/RELEASE are
semi-permeable while READ/WRITE are memop dependent.

So any combination will be a semi-permeable memop dependent thing,
which is the most narrow barrier possible.

So if we thing of ACQUIRE/RELEASE as being 'half' a full barrier,
separated in direction, and READ/WRITE as being 'half' a full barrier
separated on type, then the combination is a 'quarter' barrier.

Not arguing they're not useful, just saying we need to be extra careful.

> Maybe some day we should capture this subtlety in memory-barriers.txt,
> but we will first need a new generation of small children who are not
> scared by the current document.  ;-)

Lolz :-)

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists