On Fri, Jan 15, 2016 at 10:29:12PM +0100, Peter Zijlstra wrote:
On Fri, Jan 15, 2016 at 09:39:12AM -0800, Paul E. McKenney wrote:
quoted
Should we start putting litmus tests for the various examples
somewhere, perhaps in a litmus-tests directory within each participating
architecture? I have a pile of powerpc-related litmus tests on my laptop,
but they probably aren't doing all that much good there.
Yeah, or a version of them in C that we can 'compile'?
That would be good as well. I am guessing that architecture-specific
litmus tests will also be needed, but you are right that
architecture-independent versions are higher priority.
quoted
commit 2cb4e83a1b5c89c8e39b8a64bd89269d05913e41
Author: Paul E. McKenney [off-list ref]
Date: Fri Jan 15 09:30:42 2016 -0800
documentation: Distinguish between local and global transitivity
The introduction of smp_load_acquire() and smp_store_release() had
the side effect of introducing a weaker notion of transitivity:
The transitivity of full smp_mb() barriers is global, but that
of smp_store_release()/smp_load_acquire() chains is local. This
commit therefore introduces the notion of local transitivity and
gives an example.
Reported-by: Peter Zijlstra [off-list ref]
Reported-by: Will Deacon [off-list ref]
Signed-off-by: Paul E. McKenney [off-list ref]
I think it fails to mention smp_mb__after_release_acquire(), although I
suspect we didn't actually introduce the primitive yet, which raises the
point, do we want to?
Well, it is not in v4.4. I believe that we need good use cases before
we add it.
Thanx, Paul