Re: Memory mapped IO vs Port IO
From: Andi Kleen
Date: Thu Sep 11 2003 - 12:37:33 EST
On Thu, 11 Sep 2003 18:12:05 +0100
Jamie Lokier <jamie@xxxxxxxxxxxxx> wrote:
> Andi Kleen wrote:
> > Even a memory write is tens to hundres of cycles.
>
> Not from the CPU's perspective. It is done in parallel with other
> instructions.
Only when there are more instructions to execute. But device
driver code often does a following read e.g. to check if it can submit
another request to the hardware.
My claim is basically:
Change everybody who currently does
#ifdef CONFIG_MMIO
writel(... )
readl(...)
#else
outl( ... )
inl ( ...)
#endif
to
if (dev->mmio) {
writel();
real();
} else {
outl();
inl();
}
and you will have a hard time to benchmark the difference on any non ancient system
in actual driver operation.
-Andi
-
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/