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

Paul Mackerras
2006-03-08T22:10:58Z

David Howells writes:

> > # define smp_read_barrier_depends() do { } while(0)
>
> What's this one meant to do?

On most CPUs, if you load one value and use the value you get to
compute the address for a second load, there is an implicit read
barrier between the two loads because of the dependency. That's not
true on alpha, apparently, because of the way their caches are
structured. The smp_read_barrier_depends is a read barrier that you
use between two loads when there is already a dependency between the
loads, and it is a no-op on everything except alpha (IIRC).

Paul.