C R+mb+locked
Cycle=Fre PodWW Wse PodWR
Generator=diycross7 (version 7.47+3(dev))
Prefetch=0:x=F,0:y=W,1:y=F,1:x=T
Com=Ws Fr
Orig=PodWW Wse PodWR Fre
{}
P0(int* y,int* x) {
WRITE_ONCE(*x,1);
smp_mb();
WRITE_ONCE(*y,1);
}
P1(int* y,spinlock_t* lo,int* x) {
spin_lock(lo);
WRITE_ONCE(*y,2);
spin_unlock(lo);
spin_lock(lo);
int r0 = READ_ONCE(*x);
spin_unlock(lo);
}
Observed
y=2; 1:r0=0;