C SB+locked-diff+mb
{}
P0(int* y,spinlock_t* lock_y,int* x,spinlock_t* lock_x) {
spin_lock(lock_x);
WRITE_ONCE(*x,1);
spin_unlock(lock_x);
spin_lock(lock_y);
int r0 = READ_ONCE(*y);
spin_unlock(lock_y);
}
P1(int* y,int* x) {
WRITE_ONCE(*y,1);
smp_mb();
int r0 = READ_ONCE(*x);
}
Observed
1:r0=0; 0:r0=0;