Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
From: Felix Fietkau <nbd@openwrt.org>
To: Dave Taht <dave.taht@gmail.com>,
	 Robert Bradley <robert.bradley1@gmail.com>
Cc: "cerowrt-devel@lists.bufferbloat.net"
	<cerowrt-devel@lists.bufferbloat.net>
Subject: Re: [Cerowrt-devel] Fwd: [bug #442] ath9k queue hang
Date: Wed, 16 Apr 2014 23:05:54 +0200	[thread overview]
Message-ID: <534EF0B2.7060701@openwrt.org> (raw)
In-Reply-To: <CAA93jw4AMH87s97mWLrNLXw+oSGWXWMq2ov4srv_s96xWJ+oLg@mail.gmail.com>

On 2014-04-16 19:38, Dave Taht wrote:
> On Wed, Apr 16, 2014 at 10:25 AM, Robert Bradley
> <robert.bradley1@gmail.com> wrote:
>> On 16/04/2014 18:00, Dave Taht wrote:
>>> should I have said "de-protected"? in
>>>
>>> linux-3.14/drivers/net/wireless/ath/ath9k/xmit.c
>> <snip>
>>>         if (info->flags & IEEE80211_TX_CTL_PS_RESPONSE) {
>>>                 ath_txq_unlock(sc, txq);
>>>                 txq = sc->tx.uapsdq;
>>> ^^^^^^
>>>                 ath_txq_lock(sc, txq);
>>>         } else if (txctl->an &&
>>>
>>
>> Isn't the point here that you're potentially switching txq and so need
>> to unlock the old one and then lock the new one?
> 
> But it's happening after incrementing the old one and potentially stopping it...
> 
> My take on this bit of code is that it needs to happen before the increment
> and potental stop, and it should validate the value of tx.uapsdq.
> 
> but I am by no means the expert here! Felix is da man....
The txq switching handling wrt. pending_frames is correct. Since the
uapsd queue is used for powersave responses (both from the drv_tx
codepath and internal buffering), it is much better to credit these
packets to the queue that similar frames are normally meant to be
transmitted on. This is the txq before the switch.

To make that work, ath_txq_skb_done has an explicit check for the uapsd
queue.

- Felix

      reply	other threads:[~2014-04-16 21:06 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-15 19:00 Dave Taht
2014-04-16 13:11 ` Felix Fietkau
2014-04-16 15:34   ` Dave Taht
2014-04-16 16:55     ` Felix Fietkau
2014-04-16 17:00       ` Dave Taht
2014-04-16 17:25         ` Robert Bradley
2014-04-16 17:38           ` Dave Taht
2014-04-16 21:05             ` Felix Fietkau [this message]

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

  List information: https://lists.bufferbloat.net/postorius/lists/cerowrt-devel.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=534EF0B2.7060701@openwrt.org \
    --to=nbd@openwrt.org \
    --cc=cerowrt-devel@lists.bufferbloat.net \
    --cc=dave.taht@gmail.com \
    --cc=robert.bradley1@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox