Re: Memory barriers and spin_unlock safety

From: Linus Torvalds
Date: Fri Mar 03 2006 - 16:32:17 EST




On Fri, 3 Mar 2006, David Howells wrote:
>
> 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.

Yes.

> > 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.

Yeah, Power really does have some funky stuff in their memory ordering.
I'm not quite sure why, though. And it definitely isn't implied by any of
the Linux kernel barriers.

(They also do TLB coherency in hw etc strange things).

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/