xe(4) MPSAFE patch
M. Warner Losh
imp at bsdimp.com
Wed Jun 4 07:16:53 UTC 2008
In message: <E1K3lMr-0000fG-UI at clue.co.za>
Ian FREISLICH <ianf at 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
More information about the freebsd-current
mailing list