linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Yibo Zhao <yiboz@codeaurora.org>
To: Kan Yan <kyan@google.com>
Cc: johannes@sipsolutions.net, linux-wireless@vger.kernel.org,
	make-wifi-fast@lists.bufferbloat.net, toke@redhat.com,
	nbd@nbd.name
Subject: Re: [PATCH v2 1/2] mac80211: Implement Airtime-based Queue Limit (AQL)
Date: Wed, 09 Oct 2019 16:18:20 +0800	[thread overview]
Message-ID: <18630c07d0aa46d16cf660d013f96b3d@codeaurora.org> (raw)
In-Reply-To: <20191007043120.67567-2-kyan@google.com>

> diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
> index f13eb2f61ccf..dadb643a5498 100644
> --- a/net/mac80211/tx.c
> +++ b/net/mac80211/tx.c
> @@ -3669,7 +3669,8 @@ struct ieee80211_txq *ieee80211_next_txq(struct
> ieee80211_hw *hw, u8 ac)
>  {
>  	struct ieee80211_local *local = hw_to_local(hw);
>  	struct ieee80211_txq *ret = NULL;
> -	struct txq_info *txqi = NULL;
> +	struct txq_info *txqi = NULL, *head = NULL;
> +	bool found_eligible_txq = false;
> 
>  	spin_lock_bh(&local->active_txq_lock[ac]);
> 
> @@ -3680,20 +3681,32 @@ struct ieee80211_txq
> *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac)
>  	if (!txqi)
>  		goto out;
> 
> +	if (txqi == head && !found_eligible_txq)
> +		goto out;

I assume here the only txq in the list that does not meet AQL check will 
not be dequeued. Right? Will it affect peak throughput once there is 
only one station.

How about dequeuing it anyway regardless AQL because it is the only one 
active now so it is fine to occupy the rest bandwidth. Otherwise, I am 
afraid next_txq() will return NULL in the test only one station is 
present.

> @@ -3748,10 +3785,10 @@ bool ieee80211_txq_may_transmit(struct 
> ieee80211_hw *hw,
>  	struct sta_info *sta;
>  	u8 ac = txq->ac;
> 
> -	spin_lock_bh(&local->active_txq_lock[ac]);
> -
>  	if (!txqi->txq.sta)
> -		goto out;
> +		return true;

why return here? I think even a txq without sta info should get removed 
from list and added it back later in return_txq() if needed. No?

> +
> +	spin_lock_bh(&local->active_txq_lock[ac]);
> 
>  	if (list_empty(&txqi->schedule_order))
>  		goto out;


-- 
Yibo

  parent reply	other threads:[~2019-10-09  8:18 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-07  4:31 [PATCH v2 0/2] Implement Airtime-based Queue Limit (AQL) Kan Yan
2019-10-07  4:31 ` [PATCH v2 1/2] mac80211: " Kan Yan
2019-10-07 19:33   ` Johannes Berg
2019-10-09  8:18   ` Yibo Zhao [this message]
2019-10-09 22:44     ` Kan Yan
2019-10-10  1:55       ` Yibo Zhao
2019-10-07  4:31 ` [PATCH v2 2/2] ath10k: Enable " Kan Yan
2019-10-09 13:17   ` Kalle Valo

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=18630c07d0aa46d16cf660d013f96b3d@codeaurora.org \
    --to=yiboz@codeaurora.org \
    --cc=johannes@sipsolutions.net \
    --cc=kyan@google.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    --cc=nbd@nbd.name \
    --cc=toke@redhat.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;
as well as URLs for NNTP newsgroup(s).