[PATCH] Document Linux's memory barriers [try #4]
David Howells
dhowells at redhat.com
Wed Mar 15 10:59:28 EST 2006
Paul Mackerras <paulus at samba.org> wrote:
> No, that's not the problem. The problem is that you can get q == &b
> and d == 1, believe it or not. That is, you can see the new value of
> the pointer but the old value of the thing pointed to.
But that doesn't make any sense!
That would mean we that we'd've read b into d before having read the new value
of p into q, and thus before having calculated the address from which to read d
(ie: &b) - so how could we know we were supposed to read d from b and not from
a without first having read p?
Unless, of course, the smp_wmb() isn't effective, and the write to b happens
after the write to p; or the Alpha's cache isn't fully coherent.
David
More information about the Linuxppc64-dev
mailing list