[ltp] cpu load on PCMCIA usage
Dean L. Hedin
linux-thinkpad@linux-thinkpad.org
Wed, 13 Nov 2002 12:46:48 -0500
Yea, cardbus, that's the problem. It all depends if your
PCMCIA controller supports cardbus.
The snippet below explains the throughput side of things..
But what about the CPU load? I suspect that the code is
using REP OUTST instructions to fill the ethernet card's
buffer. In the normal 16 bit bus/10mb ethernet case this
would happen only every so often. But in the case of a
16 bit bus/100mb ethernet, the CPU performs the REP OUTST
to move the data, then the ethernet card imeadiately signals again
for more data. The CPU thusly becomes I/O bounded.
Kinda sucks huh? If you do not have cardbus controller, no sense
in getting a 100mb ethernet card :)
If the ethernet card signals "empty buffer" with an interrupt, then
in this case you would want to set the ethernet card interrupt to
the LOWEST priority in the system. This won't lighten the CPU load
but will ensure that other system interrupts get taken care of ahead
of the ethernet card (which can't be filled fast enough anyhow).
So you may want to play with irqtune after all.
Here is the quote from the PCMCIA HOWTO:
"16-bit PCMCIA cards have a maximum performance of 1.5-2 MB/sec. That
means that any 16-bit 100baseT card (i.e., any card that uses the
pcnet_cs, 3c574_cs, smc91c92_cs, or xirc2ps_cs
driver) will never achieve full 100baseT throughput. Only CardBus
network adapters can fully exploit 100baseT data rates."