Subject: Re: wi performance hack
To: Charles M. Hannum <abuse@spamalicious.com>
From: Simon Burge <simonb@wasabisystems.com>
List: tech-net
Date: 07/19/2004 21:34:01
"Charles M. Hannum" wrote:

> Many people have observed that wi(4) uses a lot of CPU time.  I have 
> identified this as being primarily due to busy-waiting for TX commands to 
> complete.  The attached hack is a first step at eliminating that problem, and 
> improves wi(4) performance substantially on my test machines.
> 
> If other people could test this and let me know the results, that would be 
> helpful -- especially with Orinoco cards, since I don't have any(*).
> 
> Note that this hack is not finished.  It currently causes a race condition 
> between wi_cmd() (primarily ifconfig(8) and wiconfig(8)) and the transmit 
> path that can cause spurious errors.  It's intended as a test to see if the 
> methodology works well enough to bother finishing.

On my Toshiba-badged Orinoco:

	wi0 at pcmcia1 function 0: <TOSHIBA, Wireless LAN Card, Version 01.01>
	wi0: 802.11 address 00:02:2d:52:d6:f8
	wi0: using Lucent Technologies, WaveLAN/IEEE
	wi0: Lucent Firmware: Station (8.42.1)
	wi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps

I see the following errors in groups of three:

	wi0: bad alloc 1f7 != 1f9, cur 2 nxt 2
	wi0: bad alloc 1f8 != 1f9, cur 2 nxt 2
	wi0: bad alloc 1f9 != 1f7, cur 0 nxt 0

	wi0: bad alloc 1f7 != 1f9, cur 2 nxt 2
	wi0: bad alloc 1f8 != 1f9, cur 2 nxt 2
	wi0: bad alloc 1f9 != 1f7, cur 0 nxt 0

	wi0: bad alloc 1f7 != 1f8, cur 1 nxt 1
	wi0: bad alloc 1f8 != 1f7, cur 0 nxt 0
	wi0: bad alloc 1f9 != 1f7, cur 0 nxt 0

	wi0: bad alloc 1f7 != 1f9, cur 2 nxt 2
	wi0: bad alloc 1f8 != 1f9, cur 2 nxt 2
	wi0: bad alloc 1f9 != 1f7, cur 0 nxt 0

After each group of three messages there is no more network traffic
and an "ifconfig down/ifconfig up" gets it working for a little while
longer.  The longest it worked was for maybe 3 minutes with an ssh to
another local box just doing "ls" and other simple commands.  Would
these be the "spurious errors" you refer to?

Simon.
--
Simon Burge                            <simonb@wasabisystems.com>
NetBSD Support and Service:         http://www.wasabisystems.com/