From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-12-01 11:46:19
Roland Schwarz wrote:
> Peter Dimov wrote:
>> Roland Schwarz wrote:
>> There are fifteen, in principle. The basic bidirectional ordering
>> constraints are #LoadLoad, #LoadStore, #StoreLoad and #StoreStore,
>> and a barrier can include any subset of them. In practice #StoreLoad
>> usually implies a full barrier.
> Hmm, these names are from the sparc architecture, correct? I don't
> know enough about this, so I would be glad if you could tell me more.
> I was speaking (altough didn't make it explicit) about the three
> barriers used in the linux kernel.
> What is the semantics of e.g. #LoadLoad?
You are right, this is Sun SPARC terminology. #LoadLoad means that loads
that precede the barrier cannot be reordered with loads that follow the
barrier. The four basic primitives can be combined freely, so for example
#LoadLoad | #LoadStore means that preceding loads cannot be reordered with
subsequent loads or stores.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk