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>