Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 04 Jun 2008 01:14:45 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        ianf@clue.co.za
Cc:        current@freebsd.org
Subject:   Re: xe(4) MPSAFE patch 
Message-ID:  <20080604.011445.-957832680.imp@bsdimp.com>
In-Reply-To: <E1K3lMr-0000fG-UI@clue.co.za>
References:  <jhb@freebsd.org> <E1K3lMr-0000fG-UI@clue.co.za>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <E1K3lMr-0000fG-UI@clue.co.za>
            Ian FREISLICH <ianf@clue.co.za> writes:
: John Baldwin wrote:
: > Cool, thanks.  If you are still up for testing, try out 
: > http://www.FreeBSD.org/~jhb/patches/xe_intr.patch
: 
: I'm always up for testing :)
: 
: > It uses the bus_read API instead of bus_space and splits the interrupt
: > handler up into sub-functions for tx/rx/MAC events.
: 
: And this, unsurprisingly, also works. :)
: 
: This card however must be a pile of rubbish.  The interrupt usage
: suggests it's just PIO and uses the CPU to bit-bang the line to
: generate the ethernet timing and signals.  73% interrupt on a
: PIII-500 to move data at 100Mbit/s.

PC Card devices generally were PIO only.  DMA was technically in the
standard, but in reality it was never implemented.  The lack of a
standardized DMA interface in the host controller is mostly to blame,
and FreeBSD doesn't support the few cards that did support DMA.

I don't think it is big-banging the line to generate the ethernet
timing, but there are a number of busy loops in the driver that keep
it from peak efficiency.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080604.011445.-957832680.imp>