Received: by 10.223.185.116 with SMTP id b49csp802449wrg; Wed, 21 Feb 2018 07:09:59 -0800 (PST) X-Google-Smtp-Source: AH8x2268tUBbufHZtSd7PbXS0gUEwajzyZb79po0aWagEjGOvTEWkKC9KMzx8A7+jIxoNaWNjscz X-Received: by 10.98.12.152 with SMTP id 24mr3617011pfm.147.1519225799177; Wed, 21 Feb 2018 07:09:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519225799; cv=none; d=google.com; s=arc-20160816; b=j0dqySedudakD11WkZqtPwUFfwhoIW8mt3vCsuotUp84Iv97w5U1CXR6E2CG3gc4vl BrB5czVe7Ys9oOIk8uNSqD7Lun0uX/EFU/s198o4I+Od9H1DfnhNKFU7z7d2EvhB6ptP 7qX9ChNj5lCA+1xol+/p8Ej5GZsp8qH7cWNN8sga92JB7i4JrtZ6U2vOw0PJidYNe7n/ TM54OGlQwtSSH0qEALNiuqhsS3y2z7PPp7WEyEdKtbZsywbkpChlvez9khzykqpOLFB9 4bsXixKfZgbsbrsGLDuLtEIJIp41gd3lSGncMdVxdJmS2Bz5EihqA4/iSD20Fvi8lWrr uxIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:in-reply-to :subject:cc:to:from:date:arc-authentication-results; bh=r6RGwXcGJVhDLd07vN0bMqvgiUAsbLeYT2KrpdHcMUk=; b=MInuf1P8bydQj8KV7W8w/WMfv5YRmPRlFPmiQ6V7KWCHhPlqA/CXbW2Fdyxo5cQRjX nAqcysDJJr6EMkJWblDxT4BC2EEIGqaxsU9H+6rv/AFEfbUyZGLY609LQGSMnDfvGZN9 mcflGxpO5RTGGU4YSnj8zbjpwU5Cnf2xBStwTv0G1cGna1tsw8gn6iut0iXMuE5XPziG 4bPMRg7aJTPSSLpLqQQcadTLSM4LCUt91CvboPIn3SDeJbBrdQNV1W/fiU1esv3RSiSM dRWmHCZR9qGZ8rzoAicD/lGtsDmISD9STKGYqQTrZMgzxjk/sxvQ/wVe5Xu1Gu1TdmLk iSXg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c10si10909942pge.396.2018.02.21.07.09.42; Wed, 21 Feb 2018 07:09:59 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754670AbeBUPJC (ORCPT + 99 others); Wed, 21 Feb 2018 10:09:02 -0500 Received: from iolanthe.rowland.org ([192.131.102.54]:33012 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1754529AbeBUPJB (ORCPT ); Wed, 21 Feb 2018 10:09:01 -0500 Received: (qmail 2331 invoked by uid 2102); 21 Feb 2018 10:09:00 -0500 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 21 Feb 2018 10:09:00 -0500 Date: Wed, 21 Feb 2018 10:09:00 -0500 (EST) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: "Paul E. McKenney" cc: linux-kernel@vger.kernel.org, , , , , , , , , , , , Subject: Re: [PATCH RFC tools/lkmm 10/12] tools/memory-model: Add a S lock-based external-view litmus test In-Reply-To: <1519169112-20593-10-git-send-email-paulmck@linux.vnet.ibm.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 20 Feb 2018, Paul E. McKenney wrote: > From: Alan Stern > > This commit adds a litmus test in which P0() and P1() form a lock-based S > litmus test, with the addition of P2(), which observes P0()'s and P1()'s Why do you call this an "S" litmus test? Isn't ISA2 a better description? > accesses with a full memory barrier but without the lock. This litmus > test asks whether writes carried out by two different processes under the > same lock will be seen in order by a third process not holding that lock. > The answer to this question is "yes" for all architectures supporting > the Linux kernel, but is "no" according to the current version of LKMM. > > A patch to LKMM is under development. > > Signed-off-by: Alan Stern > Signed-off-by: Paul E. McKenney > --- > .../ISA2+pooncelock+pooncelock+pombonce.litmus | 41 ++++++++++++++++++++++ > 1 file changed, 41 insertions(+) > create mode 100644 tools/memory-model/litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus Aren't these tests supposed to be described in litmus-tests/README? > diff --git a/tools/memory-model/litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus b/tools/memory-model/litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus > new file mode 100644 > index 000000000000..7a39a0aaa976 > --- /dev/null > +++ b/tools/memory-model/litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus > @@ -0,0 +1,41 @@ > +C ISA2+pooncelock+pooncelock+pombonce.litmus > + > +(* > + * Result: Sometimes > + * > + * This test shows that the ordering provided by a lock-protected S > + * litmus test (P0() and P1()) are not visible to external process P2(). > + * This is likely to change soon. That last line may be premature. We haven't reached any consensus on how RISC-V will handle this. If RISC-V allows the test then the memory model can't forbid it. Alan > + *) > + > +{} > + > +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) >