Re: Memory mapped IO vs Port IO

Jesse Barnes
2003-09-12T18:28:03Z

On Fri, Sep 12, 2003 at 11:11:48AM -0700, Tim Hockin wrote:
> On Fri, Sep 12, 2003 at 08:00:03PM +0200, Andi Kleen wrote:
> > jbarnes@sgi.com (Jesse Barnes) writes:
> >
> > > Ok, Andi asked for benchmarks, so I ran some. Let this should be a
> > > lesson on why you shouldn't use port I/O :) I ran these on an SGI Altix
> > > w/900 MHz McKinley processors.
> > >
> > > Just straight calls to the routines (all of these are based on the
> > > average of 100 iterations):
> > > writeq(val, reg) time: 64 cycles
> > > outl(val, reg) time: 2126 cycles
> > ^^^^^
> > >
> > > A simple branch:
> > > if (use_mmio)
> > > writeq(val, reg) time: 132 cycles
> > > else
> > > outl(val, reg) time: 1990 cycles
> > ^^^^^
> > Something seems to be wrong in your numbers.
> >
> > Surely the outl in the if () cannot be faster than the pure outl() ?
>
> Also - a perhaps more useful test is a write followed by a read.

Well, someone else will have to run that test. On Altix, a read() is
freakishly expensive, and I'm not really interested in showing everyone
how bad it is ;)

Jesse