All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Andrea Parri <parri.andrea@gmail.com>
Cc: Alan Stern <stern@rowland.harvard.edu>,
	Akira Yokosawa <akiyks@gmail.com>,
	linux-kernel@vger.kernel.org, mingo@kernel.org,
	will.deacon@arm.com, peterz@infradead.org, boqun.feng@gmail.com,
	npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk,
	luc.maranget@inria.fr, Patrick Bellasi <patrick.bellasi@arm.com>
Subject: Re: Trial of conflict resolution of Alan's patch
Date: Thu, 15 Feb 2018 14:41:35 -0800	[thread overview]
Message-ID: <20180215224135.GC3617@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180215220539.GA5363@andrea>

On Thu, Feb 15, 2018 at 11:05:39PM +0100, Andrea Parri wrote:
> On Thu, Feb 15, 2018 at 11:29:14AM -0800, Paul E. McKenney wrote:
> > On Thu, Feb 15, 2018 at 12:51:56PM -0500, Alan Stern wrote:
> > > On Fri, 16 Feb 2018, Akira Yokosawa wrote:
> > > 
> > > > So, I attempted to rebase the patch to current (somewhat old) master of
> > > > https://github.com/aparri/memory-model. Why? Because the lkmm branch
> > > > in Paul's -rcu tree doesn't have linux-kernel-hardware.cat.
> > > > 
> > > > However, after this change, Z6.0+pooncelock+pooncelock+pombonce still
> > > > has the result "Sometimes". I must have done something wrong in the
> > > > conflict resolution.
> > > > 
> > > > Note: I have almost no idea what this patch is doing. I'm just hoping
> > > > to give a starting point of a discussion.
> > > 
> > > Yes, that litmus test gives "Sometimes" both with and without the 
> > > patch.  But consider instead this slightly changed version of that 
> > > test, in which P2 reads Z instead of writing it:
> > > 
> > > C Z6.0-variant
> > > 
> > > {}
> > > 
> > > P0(int *x, int *y, spinlock_t *mylock)
> > > {
> > > 	spin_lock(mylock);
> > > 	WRITE_ONCE(*x, 1);
> > > 	WRITE_ONCE(*y, 1);
> > > 	spin_unlock(mylock);
> > > }
> > > 
> > > P1(int *y, int *z, spinlock_t *mylock)
> > > {
> > > 	int r0;
> > > 
> > > 	spin_lock(mylock);
> > > 	r0 = READ_ONCE(*y);
> > > 	WRITE_ONCE(*z, 1);
> > > 	spin_unlock(mylock);
> > > }
> > > 
> > > P2(int *x, int *z)
> > > {
> > > 	int r1;
> > > 	int r2;
> > > 
> > > 	r2 = READ_ONCE(*z);
> > > 	smp_mb();
> > > 	r1 = READ_ONCE(*x);
> > > }
> > > 
> > > exists (1:r0=1 /\ 2:r2=1 /\ 2:r1=0)
> > > 
> > > Without the patch, this test gives "Sometimes"; with the patch it gives 
> > > "Never".  That is what I thought Paul was talking about originally.  
> > > 
> > > Sorry if my misunderstanding caused too much confusion for other 
> > > people.
> > 
> > Ah, I did indeed get confused.  I have changed the "Result:" for
> > Z6.0+pooncelock+pooncelock+pombonce.litmus back to "Never", as in
> > the patch below (which I merged into the patch adding all the
> > comments).
> > 
> > I have added the above test as ISA2+pooncelock+pooncelock+pombonce.litmus,
> > with the Result: of Sometimes with you (Alan) as author and with your
> > Signed-off-by -- please let me know if you would prefer some other
> > approach.
> > 
> > Please change the Result: when sending the proposed patch.  Or please let
> > me know if you would like me to apply the forward-port that Akira sent,
> > in which case I will add the Result: change to that patch.  Or for that
> > matter, Akira might repost his forward-port of your patch with this change.
> > 
> > 							Thanx, Paul
> > 
> > ------------------------------------------------------------------------
> > 
> > commit b2950420e1154131c0667f1ac58666bad3a06a69
> > Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > Date:   Thu Feb 15 10:35:25 2018 -0800
> > 
> >     fixup! EXP litmus_tests:  Add comments explaining tests' purposes
> >     
> >     Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > 
> > diff --git a/tools/memory-model/litmus-tests/Z6.0+pooncelock+pooncelock+pombonce.litmus b/tools/memory-model/litmus-tests/Z6.0+pooncelock+pooncelock+pombonce.litmus
> > index fad47258a3e3..95890669859b 100644
> > --- a/tools/memory-model/litmus-tests/Z6.0+pooncelock+pooncelock+pombonce.litmus
> > +++ b/tools/memory-model/litmus-tests/Z6.0+pooncelock+pooncelock+pombonce.litmus
> > @@ -1,7 +1,7 @@
> >  C Z6.0+pooncelock+pooncelock+pombonce
> >  
> >  (*
> > - * Result: Never
> > + * Result: Somtimes
> 
> nit: s/Somtimes/Sometimes

Good catch, fixed!

							Thanx, Paul

>   Andrea
> 
> 
> >   *
> >   * This example demonstrates that a pair of accesses made by different
> >   * processes each while holding a given lock will not necessarily be
> > 
> 

  reply	other threads:[~2018-02-15 22:41 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-09 14:18 [PATCH RFC tools/lkmm] Miscellaneous fixes Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 01/10] tools/memory-model: Clarify the origin/scope of the tool name Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 02/10] MAINTAINERS: Add the Memory Consistency Model subsystem Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 03/10] MAINTAINERS: List file memory-barriers.txt within the LKMM entry Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 04/10] EXP litmus_tests: Add comments explaining tests' purposes Paul E. McKenney
2018-02-09 18:46   ` Alan Stern
2018-02-10  1:05     ` Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 05/10] README: Fix a couple of punctuation errors Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 06/10] EXP MAINTAINERS: Add the "LKMM" acronym Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 07/10] MAINTAINERS: Add Akira Yokosawa as an LKMM reviewer Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 08/10] EXP Remove understore from smp_mb__before_atomic() workings Paul E. McKenney
2018-02-15 22:30   ` Andrea Parri
2018-02-15 22:49     ` Paul E. McKenney
2018-02-15 23:19       ` Andrea Parri
2018-02-15 23:32         ` Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 09/10] EXP Remove underscore from smp_mb__after_atomic() workings Paul E. McKenney
2018-02-09 14:20 ` [PATCH RFC tip/lkmm 10/10] EXP Remove underscores from smp_mb__after_spinlock() workings Paul E. McKenney
2018-02-09 16:02 ` [PATCH RFC tools/lkmm] Miscellaneous fixes Akira Yokosawa
2018-02-09 16:06   ` [PATCH] tools/memory-model: Restore compat with herd7 7.47 ("-" -> "_") Akira Yokosawa
2018-02-09 23:46   ` [PATCH v2] tools/memory-model: Make " Akira Yokosawa
2018-02-10  1:07     ` Paul E. McKenney
2018-02-10  3:03       ` Akira Yokosawa
2018-02-11 11:51       ` Ingo Molnar
2018-02-13  1:38         ` Paul E. McKenney
2018-02-13  8:32           ` Ingo Molnar
2018-02-14 22:20       ` Akira Yokosawa
2018-02-14 22:52         ` Paul E. McKenney
2018-02-15 15:10           ` Alan Stern
2018-02-15 15:58             ` Trial of conflict resolution of Alan's patch Akira Yokosawa
2018-02-15 17:51               ` Alan Stern
2018-02-15 19:29                 ` Paul E. McKenney
2018-02-15 21:51                   ` Akira Yokosawa
2018-02-16 15:18                     ` Alan Stern
2018-02-16 15:47                       ` Andrea Parri
2018-02-16 16:53                         ` Paul E. McKenney
2018-02-16 22:22                           ` [PATCH] tools/memory-model: remove rb-dep, smp_read_barrier_depends, and lockless_dereference Alan Stern
2018-02-16 23:22                             ` Akira Yokosawa
2018-02-17  0:39                             ` Paul E. McKenney
2018-02-21 15:00                               ` Alan Stern
2018-02-21 16:06                                 ` Paul E. McKenney
2018-02-21 16:51                                   ` Ingo Molnar
2018-02-21 17:53                                     ` Paul E. McKenney
2018-02-21 17:15                                   ` [PATCH] tools/memory-model: update: " Alan Stern
2018-02-21 17:58                                     ` Andrea Parri
2018-02-21 18:14                                       ` Paul E. McKenney
2018-02-21 18:00                                     ` Paul E. McKenney
2018-02-21 22:29                                     ` Akira Yokosawa
2018-02-24  3:22                                       ` Akira Yokosawa
2018-02-24  3:30                                         ` Paul E. McKenney
2018-02-24 14:36                                           ` Andrea Parri
2018-02-24 16:49                                             ` Alan Stern
2018-02-24 18:08                                               ` Paul E. McKenney
2018-02-24 22:47                                                 ` Akira Yokosawa
2018-02-25 22:33                                                   ` Paul E. McKenney
2018-02-17  3:25                             ` [PATCH] tools/memory-model: " Andrea Parri
2018-02-17 15:14                               ` Andrea Parri
2018-02-19 17:14                                 ` Alan Stern
2018-02-19 17:43                                   ` Peter Zijlstra
2018-02-19 17:44                                   ` Peter Zijlstra
2018-02-20 14:48                                     ` Paul E. McKenney
2018-02-20 15:17                                       ` Andrea Parri
2018-02-20 16:11                                         ` Paul E. McKenney
2018-02-19 19:41                                   ` Paul E. McKenney
2018-02-19 20:28                                     ` Peter Zijlstra
2018-02-20 14:49                                       ` Paul E. McKenney
2018-02-20 15:11                                         ` Alan Stern
2018-02-20 16:10                                           ` Paul E. McKenney
2018-02-20  9:33                                   ` Andrea Parri
2018-02-20  9:51                                     ` Peter Zijlstra
2018-02-20 15:38                                     ` Alan Stern
2018-02-15 22:05                   ` Trial of conflict resolution of Alan's patch Andrea Parri
2018-02-15 22:41                     ` Paul E. McKenney [this message]
2018-02-18 15:46           ` [PATCH v2] tools/memory-model: Make compat with herd7 7.47 ("-" -> "_") Akira Yokosawa
2018-02-20 14:57             ` Paul E. McKenney

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=20180215224135.GC3617@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=akiyks@gmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=dhowells@redhat.com \
    --cc=j.alglave@ucl.ac.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luc.maranget@inria.fr \
    --cc=mingo@kernel.org \
    --cc=npiggin@gmail.com \
    --cc=parri.andrea@gmail.com \
    --cc=patrick.bellasi@arm.com \
    --cc=peterz@infradead.org \
    --cc=stern@rowland.harvard.edu \
    --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.