Memory barriers and spin_unlock safety
David Howells
dhowells at redhat.com
Sat Mar 4 07:15:35 EST 2006
Linus Torvalds <torvalds at osdl.org> wrote:
> The rules are, afaik, that reads can pass buffered writes, BUT WRITES
> CANNOT PASS READS (aka "writes to memory are always carried out in program
> order").
So in the example I gave, a read after the spin_unlock() may actually get
executed before the store in the spin_unlock(), but a read before the unlock
will not get executed after.
> No. Issuing a read barrier on one CPU will do absolutely _nothing_ on the
> other CPU.
Well, I think you mean will guarantee absolutely _nothing_ on the other CPU for
the Linux kernel. According to the IBM powerpc book I have, it does actually
do something on the other CPUs, though it doesn't say exactly what.
Anyway, thanks.
I'll write up some documentation on barriers for inclusion in the kernel.
David
More information about the Linuxppc64-dev
mailing list