Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Feb 2007 10:11:31 -0600
From:      Eric van Gyzen <eric@vangyzen.net>
To:        Sam Leffler <sam@errno.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: ath(4) irq and taskq cpu usage
Message-ID:  <45E1B533.9090800@vangyzen.net>
In-Reply-To: <45DB2D3E.5060803@errno.com>
References:  <45DA59DA.3040408@vangyzen.net> <45DB2D3E.5060803@errno.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Sam Leffler wrote:
> Eric van Gyzen wrote:
>> The irq and taskq for my ath(4) card often use excessive amounts of CPU
>> time, even when my network is idle.  They are often above 10% and 15%,
>> respectively; occasionally, they are as high as 27% and 44%.
>>
>> The system is an AMD Athlon64 2800+ running FreeBSD 6.2-RELEASE i386
>> with a custom kernel including the wlan_* stuff, ath, ath_hal, and
>> ath_rate_sample.  It is a station using WPA2-PSK with AES-CCMP.  The
>> access point is also a FreeBSD machine with an ath(4) card.
>>
>> During periods of high CPU usage, the
>>
>>     rx failed 'cuz of PHY err
>>         OFDM timing
>>
>> fields of the athstats output are increasing rather quickly.  For
>> example, while CPU usage was 25% and 46%, the OFDM timing field was
>> increasing by 43,000 per second.
>>
>> Can anyone explain this?  Is it a sign of failing hardware?
> 
> It means you're seeing lots of noise in the environment.  The numbers
> you cite are way too high (43K/sec is crazy) and the %cpu times see too
> high for your processor but that's hard to evaluate.  You don't indicate
> what your h/w is (mac+phy) revs but presumably it's old enough that PHY
> errors are not counted in h/w but instead sent to the host as little
> packets that must be processed.  If you actually use the radio you'll
> see the error counts go down because the radio will be busy doing useful
> work.

ath_hal: 0.9.17.2 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
ath0: <Atheros 5212> mem 0xea100000-0xea10ffff irq 17 at device 9.0 on pci0
ath0: Ethernet address: 00:11:95:91:32:f4
ath0: mac 7.9 phy 4.5 radio 5.6

I also have a P3 1.0 GHz laptop running FreeBSD 6.2 with a CardBus ath card 
with the same hardware revisions and configuration.  When ath CPU usage is 
high on the desktop, it's perfectly normal on the laptop (below 2%), even 
when the two are only a meter apart.  The CPU usage on the AP is also normal.

The desktop and AP have D-Link DWL-G520 cards; the laptop has a Netgear WG511T.

> High phy error rates can also be caused by things like faulty antenna
> connections and/or radio overload (i.e. sta and ap being too close
> and/or using high power radios).

I put a different antenna on the desktop, with no change.  The STA and AP 
are about ten meters apart.

> I can add a knob to the driver to turn off this stuff but then you will
> likely see degraded performance as the PHY errors are used to tune the
> baseband when there is noise and/or when the case temperature changes
> (this can significantly affect radio operation).

I wouldn't ask you to do that, but thanks for offering.

I should also mention that the desktop occasionally reboots spontaneously, 
as if I had hit the reset button.  In particular, I wonder if the ath card 
is flaking out.  The wild CPU usage and spontaneous resets /might/ have 
started around the same time, but I might be hallucinating.

Thanks for your help and education...and for writing the driver in the first 
place.

Eric



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45E1B533.9090800>