From: Ben Greear <greearb@candelatech.com>
To: Sujith Manoharan <sujith@msujith.org>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: 3.7.6+: ath9k: tx logic locks up after taking attenuation very high.
Date: Thu, 21 Feb 2013 15:11:15 -0800 [thread overview]
Message-ID: <5126A993.8060408@candelatech.com> (raw)
In-Reply-To: <51265AC3.5030304@candelatech.com>
On 02/21/2013 09:34 AM, Ben Greear wrote:
> On 02/20/2013 09:41 PM, Ben Greear wrote:
>> On 02/20/2013 05:38 PM, Sujith Manoharan wrote:
>>> Ben Greear wrote:
>>>> For instance, in this case, why do we have pending frames, the axq-stopped,
>>>> and no axq depth? Is that an invalid state to begin with? Once
>>>> it gets in the hung state, those numbers never change. I'd assume
>>>> something should be poking more packets out of the pending frames
>>>> down into the axq logic?
>>>
>>> Something is broken in the xmit path, definitely.
>>
>> Ok, so here's a question: In the ath_tx_complete method,
>> the pending_frames counter is only decremented if txq == c->tx.txq_map[q].
>>
>> Maybe it should always be decremented?
>>
>> What kinds of things could cause txq to not equal the txq-map[q]?
>
> I put in debugging code to check for that...and I can still reproduce
> the hang without ever failing the txq == ct->tx.txq_map[q]
> test..so problem is elsewhere it seems...
Ok, I think I see the problem, or at least some of it.
When the attenuation goes very high (signal of -80 or lower),
all transmit basically stops, at least for a bit (possibly while
rate-control algorithms adjust).
During this time, the ath_tx_complete_poll_work logic can hit,
causing a reset of the NIC.
I am seeing at the end of ath_draintxq that axq->pending_frames
reports 53 (in one example).
Shouldn't pending_frames be zero after finishing the ath_draintxq?
I added some logic to force pending_frames to be zero at the end
of that method (and also added some extra logic to reset when I
detect pending_frames type hang, and now my system appears to
recover when attenuation goes back to normal levels....
I'll post my hackings as RFC shortly.
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
next prev parent reply other threads:[~2013-02-21 23:11 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-11 18:18 3.7.6+: ath9k: tx logic locks up after taking attenuation very high Ben Greear
2013-02-12 0:11 ` Sujith Manoharan
2013-02-13 16:41 ` Ben Greear
2013-02-19 2:14 ` Sujith Manoharan
2013-02-19 2:36 ` Sujith Manoharan
2013-02-19 5:18 ` Ben Greear
2013-02-20 22:51 ` Ben Greear
2013-02-21 1:06 ` Ben Greear
2013-02-21 1:38 ` Sujith Manoharan
2013-02-21 5:41 ` Ben Greear
2013-02-21 17:34 ` Ben Greear
2013-02-21 23:11 ` Ben Greear [this message]
2013-02-21 23:49 ` Adrian Chadd
2013-02-21 23:53 ` Ben Greear
2013-02-21 23:56 ` Adrian Chadd
2013-02-22 0:11 ` Ben Greear
2013-02-22 4:23 ` Sujith Manoharan
2013-02-21 1:36 ` Sujith Manoharan
2013-02-21 2:02 ` Ben Greear
2013-02-21 2:04 ` Sujith Manoharan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5126A993.8060408@candelatech.com \
--to=greearb@candelatech.com \
--cc=linux-wireless@vger.kernel.org \
--cc=sujith@msujith.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.