brintos

brintos / linux-shallow public Read only

0
0
Text · 392 B · 5c06054 Raw
31 lines · plain
1C cmpxchg-fail-ordered-22 3(*4 * Result: Never5 *6 * Demonstrate use of smp_mb__after_atomic() to make a failing cmpxchg7 * operation have acquire ordering.8 *)9 10{}11 12P0(int *x, int *y)13{14	int r1;15 16	WRITE_ONCE(*x, 1);17	r1 = cmpxchg(y, 0, 1);18}19 20P1(int *x, int *y)21{22	int r1;23	int r2;24 25	r1 = cmpxchg(y, 0, 1);26	smp_mb__after_atomic();27	r2 = READ_ONCE(*x);28}29 30exists (0:r1=0 /\ 1:r1=1 /\ 1:r2=0)31