Well, Segher doesn't want me to use iobarrier (because it's not I/O).
Andy doesn't want me to use wmb() (because it's sync).  I don't think
something like gfar_wmb() would be appropriate.  So the remaining
options are either eieio(),

? Just curious... the original intent of eieio was to order I/O,
such as MMIO; it has no effect on memory that isn't marked
cache-inhibited or write-trhough or guarded. Has this changed?

eieio orders all accesses to address space that is WIMG=1xxx
or WIMG=x1x1; separately, it orders stores to address space
that is WIMG=001x.

I guess I haven't kept up with the times ... is eieio now
being used to provide some other kind of barrier?

Nothing changed.

Is eieio providing some sort of SMP synchronization side-effect?

It orders stores to "well-behaved" memory yes.

Point being: if Segher doesn't let you "use iobarrier (because
it's not I/O)", then I don't understand why eieio would work (since
that's for io only).

iobarrier() is a kernel-level primitive, meant for ordering
I/O only, as its name indicates.  eieio is a CPU insn that
orders stores to main memory (amongst other things), not that
its name would tell you.


Segher

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to