Subject: Re: ath(4) regression between 4.99.20 and .26
To: Jukka Salmi <j+nbsd@2007.salmi.ch>
From: Steven M. Bellovin <smb@cs.columbia.edu>
List: current-users
Date: 08/03/2007 09:08:00
On Fri, 3 Aug 2007 14:42:44 +0200
Jukka Salmi <j+nbsd@2007.salmi.ch> wrote:
> Hi,
>
> since running 4.99.26 on my i386 laptop, the kernel logs
>
> ath0: device timeout (txq 1)
>
> every few seconds, and several times even lost connection (ifconfig(8)
> reporting `status: no network'). Stopping wpa_supplicant, bringing the
> interface down and up again and restarting wpa_supplicant seems to
> reestablish connection so far.
>
> I remember seeing some `ath0: device timeout' messages previously
> (4.99.20), but fewer than now, and connection was never lost.
>
> Anybody else seeing this? Any hints?
>
Yes, I'm seeing it, too. ath worked well for me on a 15 July kernel;
the failures started (for me) with 4.99.25 built on 31 July. I see
this in the CVS log for ic/ath.c:
revision 1.84
date: 2007/07/17 01:26:17; author: dyoung; state: Exp; lines: +22 -16
Suppress spurious timeouts and avoid wedging in OACTIVE state:
1 Set or clear OACTIVE as transmit buffers are depleted or
replenished, respectively. Do not use 802.11 acknowledgements
as a criteria for clearing OACTIVE.
2 Let each transmit queue count down to timeout independently,
and get rid of the shared countdown (sc_tx_timer). When
we add a packet to a transmit queue, restart the queue's
countdown. Stop a transmit queue's countdown when the
queue empties.
I haven't yet tried reverting it and ./ic/athvar.h.
--Steve Bellovin, http://www.cs.columbia.edu/~smb