* [PATCH memory-model 0/3] LKMM updates for v5.12
@ 2021-01-06 17:35 Paul E. McKenney
2021-01-06 17:36 ` [PATCH tip/core/rcu 1/3] tools/memory-model: Tie acquire loads to reads-from paulmck
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Paul E. McKenney @ 2021-01-06 17:35 UTC (permalink / raw)
To: linux-kernel, linux-arch, kernel-team, mingo
Cc: stern, parri.andrea, will, peterz, boqun.feng, npiggin, dhowells,
j.alglave, luc.maranget, akiyks
Hello!
This series provides a few LKMM updates:
1. tools/memory-model: Tie acquire loads to reads-from.
2. tools/memory-model: Remove redundant initialization in litmus
tests, courtesy of Akira Yokosawa.
3. tools/memory-model: Fix typo in klitmus7 compatibility table,
courtesy of Akira Yokosawa.
Thanx, Paul
------------------------------------------------------------------------
Documentation/glossary.txt | 12 +++++++---
README | 2 -
litmus-tests/CoRR+poonceonce+Once.litmus | 4 ---
litmus-tests/CoRW+poonceonce+Once.litmus | 4 ---
litmus-tests/CoWR+poonceonce+Once.litmus | 4 ---
litmus-tests/CoWW+poonceonce.litmus | 4 ---
litmus-tests/IRIW+fencembonceonces+OnceOnce.litmus | 5 ----
litmus-tests/IRIW+poonceonces+OnceOnce.litmus | 5 ----
litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus | 7 -----
litmus-tests/ISA2+poonceonces.litmus | 6 -----
litmus-tests/ISA2+pooncerelease+poacquirerelease+poacquireonce.litmus | 6 -----
litmus-tests/LB+fencembonceonce+ctrlonceonce.litmus | 5 ----
litmus-tests/LB+poacquireonce+pooncerelease.litmus | 5 ----
litmus-tests/LB+poonceonces.litmus | 5 ----
litmus-tests/MP+fencewmbonceonce+fencermbonceonce.litmus | 5 ----
litmus-tests/MP+onceassign+derefonce.litmus | 4 ---
litmus-tests/MP+polockmbonce+poacquiresilsil.litmus | 5 ----
litmus-tests/MP+polockonce+poacquiresilsil.litmus | 5 ----
litmus-tests/MP+polocks.litmus | 6 -----
litmus-tests/MP+poonceonces.litmus | 5 ----
litmus-tests/MP+pooncerelease+poacquireonce.litmus | 5 ----
litmus-tests/MP+porevlocks.litmus | 6 -----
litmus-tests/R+fencembonceonces.litmus | 5 ----
litmus-tests/R+poonceonces.litmus | 5 ----
litmus-tests/S+fencewmbonceonce+poacquireonce.litmus | 5 ----
litmus-tests/S+poonceonces.litmus | 5 ----
litmus-tests/SB+fencembonceonces.litmus | 5 ----
litmus-tests/SB+poonceonces.litmus | 5 ----
litmus-tests/SB+rfionceonce-poonceonces.litmus | 5 ----
litmus-tests/WRC+poonceonces+Once.litmus | 5 ----
litmus-tests/WRC+pooncerelease+fencermbonceonce+Once.litmus | 5 ----
litmus-tests/Z6.0+pooncelock+poonceLock+pombonce.litmus | 7 -----
litmus-tests/Z6.0+pooncelock+pooncelock+pombonce.litmus | 7 -----
litmus-tests/Z6.0+pooncerelease+poacquirerelease+fencembonceonce.litmus | 6 -----
34 files changed, 42 insertions(+), 138 deletions(-)
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH tip/core/rcu 1/3] tools/memory-model: Tie acquire loads to reads-from
2021-01-06 17:35 [PATCH memory-model 0/3] LKMM updates for v5.12 Paul E. McKenney
@ 2021-01-06 17:36 ` paulmck
2021-01-06 17:36 ` [PATCH tip/core/rcu 2/3] tools/memory-model: Remove redundant initialization in litmus tests paulmck
2021-01-06 17:36 ` [PATCH tip/core/rcu 3/3] tools/memory-model: Fix typo in klitmus7 compatibility table paulmck
2 siblings, 0 replies; 4+ messages in thread
From: paulmck @ 2021-01-06 17:36 UTC (permalink / raw)
To: linux-kernel, linux-arch, kernel-team, mingo
Cc: stern, parri.andrea, will, peterz, boqun.feng, npiggin, dhowells,
j.alglave, luc.maranget, akiyks, Paul E. McKenney
From: "Paul E. McKenney" <paulmck@kernel.org>
This commit explicitly makes the connection between acquire loads and
the reads-from relation. It also adds an entry for happens-before,
and refers to the corresponding section of explanation.txt.
Reported-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
---
tools/memory-model/Documentation/glossary.txt | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/tools/memory-model/Documentation/glossary.txt b/tools/memory-model/Documentation/glossary.txt
index 79acb75..b2da636 100644
--- a/tools/memory-model/Documentation/glossary.txt
+++ b/tools/memory-model/Documentation/glossary.txt
@@ -33,10 +33,11 @@ Acquire: With respect to a lock, acquiring that lock, for example,
acquire loads.
When an acquire load returns the value stored by a release store
- to that same variable, then all operations preceding that store
- happen before any operations following that load acquire.
+ to that same variable, (in other words, the acquire load "reads
+ from" the release store), then all operations preceding that
+ store "happen before" any operations following that load acquire.
- See also "Relaxed" and "Release".
+ See also "Happens-Before", "Reads-From", "Relaxed", and "Release".
Coherence (co): When one CPU's store to a given variable overwrites
either the value from another CPU's store or some later value,
@@ -119,6 +120,11 @@ Fully Ordered: An operation such as smp_mb() that orders all of
that orders all of its CPU's prior accesses, itself, and
all of its CPU's subsequent accesses.
+Happens-Before (hb): A relation between two accesses in which LKMM
+ guarantees the first access precedes the second. For more
+ detail, please see the "THE HAPPENS-BEFORE RELATION: hb"
+ section of explanation.txt.
+
Marked Access: An access to a variable that uses an special function or
macro such as "r1 = READ_ONCE(x)" or "smp_store_release(&a, 1)".
--
2.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH tip/core/rcu 2/3] tools/memory-model: Remove redundant initialization in litmus tests
2021-01-06 17:35 [PATCH memory-model 0/3] LKMM updates for v5.12 Paul E. McKenney
2021-01-06 17:36 ` [PATCH tip/core/rcu 1/3] tools/memory-model: Tie acquire loads to reads-from paulmck
@ 2021-01-06 17:36 ` paulmck
2021-01-06 17:36 ` [PATCH tip/core/rcu 3/3] tools/memory-model: Fix typo in klitmus7 compatibility table paulmck
2 siblings, 0 replies; 4+ messages in thread
From: paulmck @ 2021-01-06 17:36 UTC (permalink / raw)
To: linux-kernel, linux-arch, kernel-team, mingo
Cc: stern, parri.andrea, will, peterz, boqun.feng, npiggin, dhowells,
j.alglave, luc.maranget, akiyks, Paul E . McKenney
From: Akira Yokosawa <akiyks@gmail.com>
This is a revert of commit 1947bfcf81a9 ("tools/memory-model: Add types
to litmus tests") with conflict resolutions.
klitmus7 [1] is aware of default types of "int" and "int*".
It accepts litmus tests for herd7 without extra type info unless
non-"int" variables are referenced by an "exists", "locations",
or "filter" directive.
[1]: Tested with klitmus7 versions 7.49 or later.
Suggested-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
---
tools/memory-model/litmus-tests/CoRR+poonceonce+Once.litmus | 4 +---
tools/memory-model/litmus-tests/CoRW+poonceonce+Once.litmus | 4 +---
tools/memory-model/litmus-tests/CoWR+poonceonce+Once.litmus | 4 +---
tools/memory-model/litmus-tests/CoWW+poonceonce.litmus | 4 +---
.../litmus-tests/IRIW+fencembonceonces+OnceOnce.litmus | 5 +----
tools/memory-model/litmus-tests/IRIW+poonceonces+OnceOnce.litmus | 5 +----
.../litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus | 7 +------
tools/memory-model/litmus-tests/ISA2+poonceonces.litmus | 6 +-----
.../ISA2+pooncerelease+poacquirerelease+poacquireonce.litmus | 6 +-----
.../litmus-tests/LB+fencembonceonce+ctrlonceonce.litmus | 5 +----
.../litmus-tests/LB+poacquireonce+pooncerelease.litmus | 5 +----
tools/memory-model/litmus-tests/LB+poonceonces.litmus | 5 +----
.../litmus-tests/MP+fencewmbonceonce+fencermbonceonce.litmus | 5 +----
tools/memory-model/litmus-tests/MP+onceassign+derefonce.litmus | 4 +---
.../litmus-tests/MP+polockmbonce+poacquiresilsil.litmus | 5 +----
.../memory-model/litmus-tests/MP+polockonce+poacquiresilsil.litmus | 5 +----
tools/memory-model/litmus-tests/MP+polocks.litmus | 6 +-----
tools/memory-model/litmus-tests/MP+poonceonces.litmus | 5 +----
.../litmus-tests/MP+pooncerelease+poacquireonce.litmus | 5 +----
tools/memory-model/litmus-tests/MP+porevlocks.litmus | 6 +-----
tools/memory-model/litmus-tests/R+fencembonceonces.litmus | 5 +----
tools/memory-model/litmus-tests/R+poonceonces.litmus | 5 +----
.../litmus-tests/S+fencewmbonceonce+poacquireonce.litmus | 5 +----
tools/memory-model/litmus-tests/S+poonceonces.litmus | 5 +----
tools/memory-model/litmus-tests/SB+fencembonceonces.litmus | 5 +----
tools/memory-model/litmus-tests/SB+poonceonces.litmus | 5 +----
tools/memory-model/litmus-tests/SB+rfionceonce-poonceonces.litmus | 5 +----
tools/memory-model/litmus-tests/WRC+poonceonces+Once.litmus | 5 +----
.../litmus-tests/WRC+pooncerelease+fencermbonceonce+Once.litmus | 5 +----
.../litmus-tests/Z6.0+pooncelock+poonceLock+pombonce.litmus | 7 +------
.../litmus-tests/Z6.0+pooncelock+pooncelock+pombonce.litmus | 7 +------
.../Z6.0+pooncerelease+poacquirerelease+fencembonceonce.litmus | 6 +-----
32 files changed, 32 insertions(+), 134 deletions(-)
diff --git a/tools/memory-model/litmus-tests/CoRR+poonceonce+Once.litmus b/tools/memory-model/litmus-tests/CoRR+poonceonce+Once.litmus
index 772544f..967f9f2 100644
--- a/tools/memory-model/litmus-tests/CoRR+poonceonce+Once.litmus
+++ b/tools/memory-model/litmus-tests/CoRR+poonceonce+Once.litmus
@@ -7,9 +7,7 @@ C CoRR+poonceonce+Once
* reads from the same variable are ordered.
*)
-{
- int x;
-}
+{}
P0(int *x)
{
diff --git a/tools/memory-model/litmus-tests/CoRW+poonceonce+Once.litmus b/tools/memory-model/litmus-tests/CoRW+poonceonce+Once.litmus
index 5faae98..4635739 100644
--- a/tools/memory-model/litmus-tests/CoRW+poonceonce+Once.litmus
+++ b/tools/memory-model/litmus-tests/CoRW+poonceonce+Once.litmus
@@ -7,9 +7,7 @@ C CoRW+poonceonce+Once
* a given variable and a later write to that same variable are ordered.
*)
-{
- int x;
-}
+{}
P0(int *x)
{
diff --git a/tools/memory-model/litmus-tests/CoWR+poonceonce+Once.litmus b/tools/memory-model/litmus-tests/CoWR+poonceonce+Once.litmus
index 77c9cc9..bb068c9 100644
--- a/tools/memory-model/litmus-tests/CoWR+poonceonce+Once.litmus
+++ b/tools/memory-model/litmus-tests/CoWR+poonceonce+Once.litmus
@@ -7,9 +7,7 @@ C CoWR+poonceonce+Once
* given variable and a later read from that same variable are ordered.
*)
-{
- int x;
-}
+{}
P0(int *x)
{
diff --git a/tools/memory-model/litmus-tests/CoWW+poonceonce.litmus b/tools/memory-model/litmus-tests/CoWW+poonceonce.litmus
index 85ef746..0d9f0a9 100644
--- a/tools/memory-model/litmus-tests/CoWW+poonceonce.litmus
+++ b/tools/memory-model/litmus-tests/CoWW+poonceonce.litmus
@@ -7,9 +7,7 @@ C CoWW+poonceonce
* writes to the same variable are ordered.
*)
-{
- int x;
-}
+{}
P0(int *x)
{
diff --git a/tools/memory-model/litmus-tests/IRIW+fencembonceonces+OnceOnce.litmus b/tools/memory-model/litmus-tests/IRIW+fencembonceonces+OnceOnce.litmus
index 87aa900..e729d27 100644
--- a/tools/memory-model/litmus-tests/IRIW+fencembonceonces+OnceOnce.litmus
+++ b/tools/memory-model/litmus-tests/IRIW+fencembonceonces+OnceOnce.litmus
@@ -10,10 +10,7 @@ C IRIW+fencembonceonces+OnceOnce
* process? This litmus test exercises LKMM's "propagation" rule.
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x)
{
diff --git a/tools/memory-model/litmus-tests/IRIW+poonceonces+OnceOnce.litmus b/tools/memory-model/litmus-tests/IRIW+poonceonces+OnceOnce.litmus
index f84022d..4b54dd6 100644
--- a/tools/memory-model/litmus-tests/IRIW+poonceonces+OnceOnce.litmus
+++ b/tools/memory-model/litmus-tests/IRIW+poonceonces+OnceOnce.litmus
@@ -10,10 +10,7 @@ C IRIW+poonceonces+OnceOnce
* different process?
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x)
{
diff --git a/tools/memory-model/litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus b/tools/memory-model/litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus
index 398f624..094d58d 100644
--- a/tools/memory-model/litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus
+++ b/tools/memory-model/litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus
@@ -7,12 +7,7 @@ C ISA2+pooncelock+pooncelock+pombonce
* (in P0() and P1()) is visible to external process P2().
*)
-{
- spinlock_t mylock;
- int x;
- int y;
- int z;
-}
+{}
P0(int *x, int *y, spinlock_t *mylock)
{
diff --git a/tools/memory-model/litmus-tests/ISA2+poonceonces.litmus b/tools/memory-model/litmus-tests/ISA2+poonceonces.litmus
index 212a432..b321aa6 100644
--- a/tools/memory-model/litmus-tests/ISA2+poonceonces.litmus
+++ b/tools/memory-model/litmus-tests/ISA2+poonceonces.litmus
@@ -9,11 +9,7 @@ C ISA2+poonceonces
* of the smp_load_acquire() invocations are replaced by READ_ONCE()?
*)
-{
- int x;
- int y;
- int z;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/ISA2+pooncerelease+poacquirerelease+poacquireonce.litmus b/tools/memory-model/litmus-tests/ISA2+pooncerelease+poacquirerelease+poacquireonce.litmus
index 7afd856..025b046 100644
--- a/tools/memory-model/litmus-tests/ISA2+pooncerelease+poacquirerelease+poacquireonce.litmus
+++ b/tools/memory-model/litmus-tests/ISA2+pooncerelease+poacquirerelease+poacquireonce.litmus
@@ -11,11 +11,7 @@ C ISA2+pooncerelease+poacquirerelease+poacquireonce
* (AKA non-rf) link, so release-acquire is all that is needed.
*)
-{
- int x;
- int y;
- int z;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/LB+fencembonceonce+ctrlonceonce.litmus b/tools/memory-model/litmus-tests/LB+fencembonceonce+ctrlonceonce.litmus
index c8a93c7..4727f5a 100644
--- a/tools/memory-model/litmus-tests/LB+fencembonceonce+ctrlonceonce.litmus
+++ b/tools/memory-model/litmus-tests/LB+fencembonceonce+ctrlonceonce.litmus
@@ -11,10 +11,7 @@ C LB+fencembonceonce+ctrlonceonce
* another control dependency and order would still be maintained.)
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/LB+poacquireonce+pooncerelease.litmus b/tools/memory-model/litmus-tests/LB+poacquireonce+pooncerelease.litmus
index 2fa0295..07b9904 100644
--- a/tools/memory-model/litmus-tests/LB+poacquireonce+pooncerelease.litmus
+++ b/tools/memory-model/litmus-tests/LB+poacquireonce+pooncerelease.litmus
@@ -8,10 +8,7 @@ C LB+poacquireonce+pooncerelease
* to the other?
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/LB+poonceonces.litmus b/tools/memory-model/litmus-tests/LB+poonceonces.litmus
index 2107306..74c49cb 100644
--- a/tools/memory-model/litmus-tests/LB+poonceonces.litmus
+++ b/tools/memory-model/litmus-tests/LB+poonceonces.litmus
@@ -7,10 +7,7 @@ C LB+poonceonces
* be prevented even with no explicit ordering?
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/MP+fencewmbonceonce+fencermbonceonce.litmus b/tools/memory-model/litmus-tests/MP+fencewmbonceonce+fencermbonceonce.litmus
index c5c168d..f8ca122 100644
--- a/tools/memory-model/litmus-tests/MP+fencewmbonceonce+fencermbonceonce.litmus
+++ b/tools/memory-model/litmus-tests/MP+fencewmbonceonce+fencermbonceonce.litmus
@@ -8,10 +8,7 @@ C MP+fencewmbonceonce+fencermbonceonce
* is usually better to use smp_store_release() and smp_load_acquire().
*)
-{
- int buf;
- int flag;
-}
+{}
P0(int *buf, int *flag) // Producer
{
diff --git a/tools/memory-model/litmus-tests/MP+onceassign+derefonce.litmus b/tools/memory-model/litmus-tests/MP+onceassign+derefonce.litmus
index 20ff626..d84160b 100644
--- a/tools/memory-model/litmus-tests/MP+onceassign+derefonce.litmus
+++ b/tools/memory-model/litmus-tests/MP+onceassign+derefonce.litmus
@@ -10,9 +10,7 @@ C MP+onceassign+derefonce
*)
{
- int *p=y;
- int x;
- int y=0;
+p=y;
}
P0(int *x, int **p) // Producer
diff --git a/tools/memory-model/litmus-tests/MP+polockmbonce+poacquiresilsil.litmus b/tools/memory-model/litmus-tests/MP+polockmbonce+poacquiresilsil.litmus
index 153917a..ba91cc6 100644
--- a/tools/memory-model/litmus-tests/MP+polockmbonce+poacquiresilsil.litmus
+++ b/tools/memory-model/litmus-tests/MP+polockmbonce+poacquiresilsil.litmus
@@ -10,10 +10,7 @@ C MP+polockmbonce+poacquiresilsil
* executed before the lock was acquired (loosely speaking).
*)
-{
- spinlock_t lo;
- int x;
-}
+{}
P0(spinlock_t *lo, int *x) // Producer
{
diff --git a/tools/memory-model/litmus-tests/MP+polockonce+poacquiresilsil.litmus b/tools/memory-model/litmus-tests/MP+polockonce+poacquiresilsil.litmus
index aad6439..a5ea3ed 100644
--- a/tools/memory-model/litmus-tests/MP+polockonce+poacquiresilsil.litmus
+++ b/tools/memory-model/litmus-tests/MP+polockonce+poacquiresilsil.litmus
@@ -10,10 +10,7 @@ C MP+polockonce+poacquiresilsil
* speaking).
*)
-{
- spinlock_t lo;
- int x;
-}
+{}
P0(spinlock_t *lo, int *x) // Producer
{
diff --git a/tools/memory-model/litmus-tests/MP+polocks.litmus b/tools/memory-model/litmus-tests/MP+polocks.litmus
index 21cbca6..e6af05f 100644
--- a/tools/memory-model/litmus-tests/MP+polocks.litmus
+++ b/tools/memory-model/litmus-tests/MP+polocks.litmus
@@ -11,11 +11,7 @@ C MP+polocks
* to see all prior accesses by those other CPUs.
*)
-{
- spinlock_t mylock;
- int buf;
- int flag;
-}
+{}
P0(int *buf, int *flag, spinlock_t *mylock) // Producer
{
diff --git a/tools/memory-model/litmus-tests/MP+poonceonces.litmus b/tools/memory-model/litmus-tests/MP+poonceonces.litmus
index 9f9769d..ba9c99c6 100644
--- a/tools/memory-model/litmus-tests/MP+poonceonces.litmus
+++ b/tools/memory-model/litmus-tests/MP+poonceonces.litmus
@@ -7,10 +7,7 @@ C MP+poonceonces
* no ordering at all?
*)
-{
- int buf;
- int flag;
-}
+{}
P0(int *buf, int *flag) // Producer
{
diff --git a/tools/memory-model/litmus-tests/MP+pooncerelease+poacquireonce.litmus b/tools/memory-model/litmus-tests/MP+pooncerelease+poacquireonce.litmus
index cbe28e7..f174bfe 100644
--- a/tools/memory-model/litmus-tests/MP+pooncerelease+poacquireonce.litmus
+++ b/tools/memory-model/litmus-tests/MP+pooncerelease+poacquireonce.litmus
@@ -8,10 +8,7 @@ C MP+pooncerelease+poacquireonce
* pattern.
*)
-{
- int buf;
- int flag;
-}
+{}
P0(int *buf, int *flag) // Producer
{
diff --git a/tools/memory-model/litmus-tests/MP+porevlocks.litmus b/tools/memory-model/litmus-tests/MP+porevlocks.litmus
index 012041b..b959914 100644
--- a/tools/memory-model/litmus-tests/MP+porevlocks.litmus
+++ b/tools/memory-model/litmus-tests/MP+porevlocks.litmus
@@ -11,11 +11,7 @@ C MP+porevlocks
* see all prior accesses by those other CPUs.
*)
-{
- spinlock_t mylock;
- int buf;
- int flag;
-}
+{}
P0(int *buf, int *flag, spinlock_t *mylock) // Consumer
{
diff --git a/tools/memory-model/litmus-tests/R+fencembonceonces.litmus b/tools/memory-model/litmus-tests/R+fencembonceonces.litmus
index af9463b..222a0b8 100644
--- a/tools/memory-model/litmus-tests/R+fencembonceonces.litmus
+++ b/tools/memory-model/litmus-tests/R+fencembonceonces.litmus
@@ -9,10 +9,7 @@ C R+fencembonceonces
* cause the resulting test to be allowed.
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/R+poonceonces.litmus b/tools/memory-model/litmus-tests/R+poonceonces.litmus
index bcd5574e..5386f12 100644
--- a/tools/memory-model/litmus-tests/R+poonceonces.litmus
+++ b/tools/memory-model/litmus-tests/R+poonceonces.litmus
@@ -8,10 +8,7 @@ C R+poonceonces
* store propagation delays.
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/S+fencewmbonceonce+poacquireonce.litmus b/tools/memory-model/litmus-tests/S+fencewmbonceonce+poacquireonce.litmus
index c36341d..1847982 100644
--- a/tools/memory-model/litmus-tests/S+fencewmbonceonce+poacquireonce.litmus
+++ b/tools/memory-model/litmus-tests/S+fencewmbonceonce+poacquireonce.litmus
@@ -7,10 +7,7 @@ C S+fencewmbonceonce+poacquireonce
* store against a subsequent store?
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/S+poonceonces.litmus b/tools/memory-model/litmus-tests/S+poonceonces.litmus
index 7775c23..8c9c2f8 100644
--- a/tools/memory-model/litmus-tests/S+poonceonces.litmus
+++ b/tools/memory-model/litmus-tests/S+poonceonces.litmus
@@ -9,10 +9,7 @@ C S+poonceonces
* READ_ONCE(), is ordering preserved?
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/SB+fencembonceonces.litmus b/tools/memory-model/litmus-tests/SB+fencembonceonces.litmus
index 833cdfe..ed5fff1 100644
--- a/tools/memory-model/litmus-tests/SB+fencembonceonces.litmus
+++ b/tools/memory-model/litmus-tests/SB+fencembonceonces.litmus
@@ -9,10 +9,7 @@ C SB+fencembonceonces
* suffice, but not much else.)
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/SB+poonceonces.litmus b/tools/memory-model/litmus-tests/SB+poonceonces.litmus
index c92211e..10d5507 100644
--- a/tools/memory-model/litmus-tests/SB+poonceonces.litmus
+++ b/tools/memory-model/litmus-tests/SB+poonceonces.litmus
@@ -8,10 +8,7 @@ C SB+poonceonces
* variable that the preceding process reads.
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/SB+rfionceonce-poonceonces.litmus b/tools/memory-model/litmus-tests/SB+rfionceonce-poonceonces.litmus
index 84344b4..04a1660 100644
--- a/tools/memory-model/litmus-tests/SB+rfionceonce-poonceonces.litmus
+++ b/tools/memory-model/litmus-tests/SB+rfionceonce-poonceonces.litmus
@@ -6,10 +6,7 @@ C SB+rfionceonce-poonceonces
* This litmus test demonstrates that LKMM is not fully multicopy atomic.
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x, int *y)
{
diff --git a/tools/memory-model/litmus-tests/WRC+poonceonces+Once.litmus b/tools/memory-model/litmus-tests/WRC+poonceonces+Once.litmus
index 4314947..6a2bc12 100644
--- a/tools/memory-model/litmus-tests/WRC+poonceonces+Once.litmus
+++ b/tools/memory-model/litmus-tests/WRC+poonceonces+Once.litmus
@@ -8,10 +8,7 @@ C WRC+poonceonces+Once
* test has no ordering at all.
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x)
{
diff --git a/tools/memory-model/litmus-tests/WRC+pooncerelease+fencermbonceonce+Once.litmus b/tools/memory-model/litmus-tests/WRC+pooncerelease+fencermbonceonce+Once.litmus
index 554999c..e994725 100644
--- a/tools/memory-model/litmus-tests/WRC+pooncerelease+fencermbonceonce+Once.litmus
+++ b/tools/memory-model/litmus-tests/WRC+pooncerelease+fencermbonceonce+Once.litmus
@@ -10,10 +10,7 @@ C WRC+pooncerelease+fencermbonceonce+Once
* is A-cumulative in LKMM.
*)
-{
- int x;
- int y;
-}
+{}
P0(int *x)
{
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 265a95f..415248f 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
@@ -9,12 +9,7 @@ C Z6.0+pooncelock+poonceLock+pombonce
* by CPUs not holding that lock.
*)
-{
- spinlock_t mylock;
- int x;
- int y;
- int z;
-}
+{}
P0(int *x, int *y, spinlock_t *mylock)
{
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 0c9aea8..10a2aa0 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
@@ -8,12 +8,7 @@ C Z6.0+pooncelock+pooncelock+pombonce
* seen as ordered by a third process not holding that lock.
*)
-{
- spinlock_t mylock;
- int x;
- int y;
- int z;
-}
+{}
P0(int *x, int *y, spinlock_t *mylock)
{
diff --git a/tools/memory-model/litmus-tests/Z6.0+pooncerelease+poacquirerelease+fencembonceonce.litmus b/tools/memory-model/litmus-tests/Z6.0+pooncerelease+poacquirerelease+fencembonceonce.litmus
index 661f9aa..88e70b8 100644
--- a/tools/memory-model/litmus-tests/Z6.0+pooncerelease+poacquirerelease+fencembonceonce.litmus
+++ b/tools/memory-model/litmus-tests/Z6.0+pooncerelease+poacquirerelease+fencembonceonce.litmus
@@ -14,11 +14,7 @@ C Z6.0+pooncerelease+poacquirerelease+fencembonceonce
* involving locking.)
*)
-{
- int x;
- int y;
- int z;
-}
+{}
P0(int *x, int *y)
{
--
2.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH tip/core/rcu 3/3] tools/memory-model: Fix typo in klitmus7 compatibility table
2021-01-06 17:35 [PATCH memory-model 0/3] LKMM updates for v5.12 Paul E. McKenney
2021-01-06 17:36 ` [PATCH tip/core/rcu 1/3] tools/memory-model: Tie acquire loads to reads-from paulmck
2021-01-06 17:36 ` [PATCH tip/core/rcu 2/3] tools/memory-model: Remove redundant initialization in litmus tests paulmck
@ 2021-01-06 17:36 ` paulmck
2 siblings, 0 replies; 4+ messages in thread
From: paulmck @ 2021-01-06 17:36 UTC (permalink / raw)
To: linux-kernel, linux-arch, kernel-team, mingo
Cc: stern, parri.andrea, will, peterz, boqun.feng, npiggin, dhowells,
j.alglave, luc.maranget, akiyks, Paul E . McKenney
From: Akira Yokosawa <akiyks@gmail.com>
klitmus7 of herdtools7 7.48 or earlier depends on ACCESS_ONCE(),
which was removed in Linux v4.15.
Fix the obvious typo in the table.
Fixes: d075a78a5ab1 ("tools/memory-model/README: Expand dependency of klitmus7")
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
---
tools/memory-model/README | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/memory-model/README b/tools/memory-model/README
index 39d08d1..9a84c45 100644
--- a/tools/memory-model/README
+++ b/tools/memory-model/README
@@ -51,7 +51,7 @@ klitmus7 Compatibility Table
============ ==========
target Linux herdtools7
------------ ----------
- -- 4.18 7.48 --
+ -- 4.14 7.48 --
4.15 -- 4.19 7.49 --
4.20 -- 5.5 7.54 --
5.6 -- 7.56 --
--
2.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-01-06 17:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-06 17:35 [PATCH memory-model 0/3] LKMM updates for v5.12 Paul E. McKenney
2021-01-06 17:36 ` [PATCH tip/core/rcu 1/3] tools/memory-model: Tie acquire loads to reads-from paulmck
2021-01-06 17:36 ` [PATCH tip/core/rcu 2/3] tools/memory-model: Remove redundant initialization in litmus tests paulmck
2021-01-06 17:36 ` [PATCH tip/core/rcu 3/3] tools/memory-model: Fix typo in klitmus7 compatibility table paulmck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).