Re: Opinion on ordering of writel vs. stores to RAM

From: Auke Kok
Date: Sat Sep 09 2006 - 14:32:21 EST


Linus Torvalds wrote:

On Sat, 9 Sep 2006, Paul Mackerras wrote:
Do you have an opinion about whether the MMIO write in writel() should
be ordered with respect to preceding writes to normal memory?

It shouldn't. It's too expensive. The fact that PC's have nice memory consistency models means that most of the testing is going to be with the PC memory ordering, but the same way we have "smp_wmb()" (which is also a no-op on x86) we should probably have a "mmiowb()" there.

Gaah. Right now, mmiowb() is actually broken on x86 (it's an empty define, so it may cause compiler warnings about statements with no effects or something).

I don't think anyting but a few SCSI drivers that are used on some ia64 boxes use mmiowb(). And it's currently a no-op not only on x86 but also on powerpc. Probably because it's defined to be a barrier between _two_ MMIO operations, while we should probably have things like

it seems to be a growing virus with network drivers too. bnx2, s2io, tg3 and bcm43xx (which has like 40 of them) are already resorting to it. We're even planning on putting one in to e1000.

I'm not sure what bcm43xx chip will work with IA64, or if people actually have itanium laptops(!) or MIPS, but for e1000 it definately fixes ordering problems on IA64.

Auke

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/