Mark Farnell wrote:
In the following code:

a++

if (a > 5) {
  .....
} else {


}

Is it possible for "a++" to be swapped with the if-block?  If so, then
can I stop this reordering by making a as atomic_t?
I don't think it would happen, but I could be wrong.


In the second case:
....
spin_lock(&lock);
a++;
spin_unlock(&lock);
....
Is it possible for instructions to be reordered across a spin_lock
primitive?  If this is possible, then spinlocks will be pretty
useless........
Two types of reordering.
Compiler reordering instructions : can be fixed by intrducing a barrier() call
CPU re ordering instructions: use a mb()/rmb()/wmb()
Spin locks would do the trick as well.

Thanks,
Om.


--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to