Subject: Re: [PATCH v2] gianfar: Add I/O barriers when touching buffer descriptor ownership.

From: [email-masked] (Olof Johansson)
Date: Fri, 4 May 2007 18:24:51 -0500

On Fri, May 04, 2007 at 05:13:09PM -0500, Linas Vepstas wrote:
> On Wed, May 02, 2007 at 03:40:20PM -0500, Scott Wood wrote:
> > 
> > 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?
> I guess I haven't kept up with the times ... is eieio now
> being used to provide some other kind of barrier?
> Is eieio providing some sort of SMP synchronization side-effect?
> 
> 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).  

Eieio has always worked for regular cachable memory as well, it just never
orders _between_ cache inhibited/guarded and cachable memory.

Book II 2.03 has a pretty good description of it on page 367.

-Olof