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;