On Fri, 15 Feb 2002, Kevin D. Kissell wrote:
> That is, I would say, a bug in the TX39 implementation of SYNC.
> The specification is states that all stores prior to the SYNC must
> complete before any memory ops after the sync, and that the
> definition of a store completing is that all stored values be
> "visible to every other processor in the system", which pretty
> clearly implies that the write buffers must be flushed.
Sorry, why? If the TX39 is the only processor in the system then write
buffers can be left alone. You can't consider PCI IO devices to be
processors because the bus protocols would never allow you to satisfy the
requirements for 'sync'.
IMHO the only time *mb should care about a write buffer is if the buffer
breaks PCI ordering semantics, by, say returning reads from posted write
data, re-ordering, etc.