Commit acc4bdc5 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

tools/memory-model: Use "buf" and "flag" for message-passing tests



The use of "x" and "y" for message-passing tests is fine for people
familiar with memory models and litmus-test nomenclature, but is a bit
obtuse for others.  This commit therefore substitutes "buf" for "x" and
"flag" for "y" for the MP tests.  There are a few special-case MP tests
that use locks and these are unchanged.  There is another MP test that
uses pointers, and this is changed to name the pointer "p".

Reported-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 1947bfcf
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -9,25 +9,25 @@ C MP+fencewmbonceonce+fencermbonceonce
 *)

{
	int x;
	int y;
	int buf;
	int flag;
}

P0(int *x, int *y)
P0(int *buf, int *flag)
{
	WRITE_ONCE(*x, 1);
	WRITE_ONCE(*buf, 1);
	smp_wmb();
	WRITE_ONCE(*y, 1);
	WRITE_ONCE(*flag, 1);
}

P1(int *x, int *y)
P1(int *buf, int *flag)
{
	int r0;
	int r1;

	r0 = READ_ONCE(*y);
	r0 = READ_ONCE(*flag);
	smp_rmb();
	r1 = READ_ONCE(*x);
	r1 = READ_ONCE(*buf);
}

exists (1:r0=1 /\ 1:r1=0)
+6 −6
Original line number Diff line number Diff line
@@ -10,24 +10,24 @@ C MP+onceassign+derefonce
 *)

{
	int *p=y;
	int x;
	int *y=z;
	int z=0;
	int y=0;
}

P0(int *x, int **y)
P0(int *x, int **p)
{
	WRITE_ONCE(*x, 1);
	rcu_assign_pointer(*y, x);
	rcu_assign_pointer(*p, x);
}

P1(int *x, int **y)
P1(int *x, int **p)
{
	int *r0;
	int r1;

	rcu_read_lock();
	r0 = rcu_dereference(*y);
	r0 = rcu_dereference(*p);
	r1 = READ_ONCE(*r0);
	rcu_read_unlock();
}
+8 −8
Original line number Diff line number Diff line
@@ -13,27 +13,27 @@ C MP+polocks

{
	spinlock_t mylock;
	int x;
	int y;
	int buf;
	int flag;
}

P0(int *x, int *y, spinlock_t *mylock)
P0(int *buf, int *flag, spinlock_t *mylock)
{
	WRITE_ONCE(*x, 1);
	WRITE_ONCE(*buf, 1);
	spin_lock(mylock);
	WRITE_ONCE(*y, 1);
	WRITE_ONCE(*flag, 1);
	spin_unlock(mylock);
}

P1(int *x, int *y, spinlock_t *mylock)
P1(int *buf, int *flag, spinlock_t *mylock)
{
	int r0;
	int r1;

	spin_lock(mylock);
	r0 = READ_ONCE(*y);
	r0 = READ_ONCE(*flag);
	spin_unlock(mylock);
	r1 = READ_ONCE(*x);
	r1 = READ_ONCE(*buf);
}

exists (1:r0=1 /\ 1:r1=0)
+8 −8
Original line number Diff line number Diff line
@@ -8,23 +8,23 @@ C MP+poonceonces
 *)

{
	int x;
	int y;
	int buf;
	int flag;
}

P0(int *x, int *y)
P0(int *buf, int *flag)
{
	WRITE_ONCE(*x, 1);
	WRITE_ONCE(*y, 1);
	WRITE_ONCE(*buf, 1);
	WRITE_ONCE(*flag, 1);
}

P1(int *x, int *y)
P1(int *buf, int *flag)
{
	int r0;
	int r1;

	r0 = READ_ONCE(*y);
	r1 = READ_ONCE(*x);
	r0 = READ_ONCE(*flag);
	r1 = READ_ONCE(*buf);
}

exists (1:r0=1 /\ 1:r1=0)
+8 −8
Original line number Diff line number Diff line
@@ -9,23 +9,23 @@ C MP+pooncerelease+poacquireonce
 *)

{
	int x;
	int y;
	int buf;
	int flag;
}

P0(int *x, int *y)
P0(int *buf, int *flag)
{
	WRITE_ONCE(*x, 1);
	smp_store_release(y, 1);
	WRITE_ONCE(*buf, 1);
	smp_store_release(flag, 1);
}

P1(int *x, int *y)
P1(int *buf, int *flag)
{
	int r0;
	int r1;

	r0 = smp_load_acquire(y);
	r1 = READ_ONCE(*x);
	r0 = smp_load_acquire(flag);
	r1 = READ_ONCE(*buf);
}

exists (1:r0=1 /\ 1:r1=0)
Loading