Thread (26 messages) 26 messages, 7 authors, 2002-02-22

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

flat view

From: Hartvig Ekner <hidden>
Date: 2002-02-18 13:53:23

Maciej W. Rozycki writes:
On Fri, 15 Feb 2002, Hartvig Ekner wrote:
quoted
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...
 The description found in the R4k manual seems to contradict.  A "sync" on
a single CPU only assures transactions on it's external bus will happen in
order wrt the "sync".  In a multiple-CPU environment all CPUs interested
in a barrier need to execute a "sync".  That's seems natural -- how would 
you define a synchronization point for a CPU that does not execute a
"sync".
You are no doubt correct regarding the R4K manual - so my comment probably
only applies for CPU's that claim to be MIPS32/MIPS64 compliant. All MTI's
CPU offerings (cores only) do in fact flush the WB on a SYNC to comply with
the current spec.
 Since I/O devices have no means to signal a CPU a "sync" operation, how
can you expect a "sync" on the CPU to complete all preceding writes to the
device?  It's only a following read that may imply it.
This I do have a problem understanding. If the SYNC does not flush the WB
on some processor/writebuffer combinations, and a read can be satisfied
out of the WB, how would you ever be able to guarantee that DMA data written
by the CPU has reached memory before triggering the IO device?

/Hartvig
quoted hunk ↗ jump to hunk
-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +

-- 
 _    _   _____  ____     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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help