Re: [patch] linux 2.4.17: The second mb() rework (final)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



But in-order for the CPU is not enough - it also needs to make sure all
written data is visible for DMA accesses to memory from the outside, which
is why the writebuffer needs to be flushed by a SYNC as well. From the
definition of "SYNC":

	"A store is completed when the stored value is visible to every other
	processor in the system". 

Which presumably also includes DMA I/O devices...

/Hartvig

Dominic Sweetman writes:
> 
> 
> Kevin D. Kissell (kevink@mips.com) writes:
> 
> > > Note that SYNC on TX39/H and TX39/H2 does not flush a write buffer.
> > > Some operation (for example, bc0f loop) are required to flush a write
> > > buffer.
> > 
> > That is, I would say, a bug in the TX39 implementation of SYNC.
> 
> That's only a problem if the CPU permitted reads to overtake buffered
> writes.  [Early R3000 write buffers did that (with an address check to
> avoid the disaster of allowing a read to overtake a write to the same
> location).]
> 
> But my recollection is that the TX39 does all memory operations in
> order: so SYNC has very little to do, but it isn't a bug.
> 
> Dominic Sweetman
> Algorithmics
> 


-- 
 _    _   _____  ____     Hartvig Ekner        Mailto:hartvige@mips.com
 |\  /| | |____)(____                          Direct: +45 4486 5503
 | \/ | | |     _____)    MIPS Denmark         Switch: +45 4486 5555
T E C H N O L O G I E S   http://www.mips.com  Fax...: +45 4486 5556


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux