Re: [PATCH] Document Linux's memory barriers [try #4]

From: David Howells
Date: Tue Mar 14 2006 - 18:57:11 EST


Paul Mackerras <paulus@xxxxxxxxx> 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
-
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/