On Fri, Feb 15, 2002 at 09:30:45AM +0100, 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. In practice sync just isn't good enough. Most systems these days use an I/O bus like PCI which uses posted writes or have some other non-strongly ordered memory model. Which is why something wmb() or mb() aren't good enough in driver. I'm just having a nice discussion about this topic with SGI's IA64 people; we have to come up with a portable and efficient ABI. Ralf