"Paul E. McKenney" <[email protected]> wrote:
>
> 1. wmb() guarantees that any writes preceding the wmb() will
> be seen by the interconnect before any writes following the
> wmb(). But this applies -only- to the writes executed by
> the CPU doing the wmb().
>
> 2. rmb() guarantees that any changes seen by the interconnect
> preceding the rmb() will be seen by any reads following the
> rmb(). Again, this applies only to reads executed by the
> CPU doing the wmb(). However, the changes might be due to
> any CPU.
>
> 3. mb() combines the guarantees made by rmb() and wmb().
So foo_mb() in preemptible code is potentially buggy.
I guess we assume that a context switch accidentally did enough of the
right types of barriers for things to work OK.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]