From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org,
make-wifi-fast@lists.bufferbloat.net, ath10k@lists.infradead.org,
John Crispin <john@phrozen.org>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Felix Fietkau <nbd@nbd.name>, Kan Yan <kyan@google.com>,
Rajkumar Manoharan <rmanohar@codeaurora.org>,
Kevin Hayes <kevinhayes@google.com>
Subject: Re: [Make-wifi-fast] [PATCH v6 4/4] mac80211: Use Airtime-based Queue Limits (AQL) on packet dequeue
Date: Fri, 08 Nov 2019 12:01:32 +0100 [thread overview]
Message-ID: <877e4afx83.fsf@toke.dk> (raw)
In-Reply-To: <0b43c4822ab83ea4d33a5a32d8ff6c7a56eff6c5.camel@sipsolutions.net>
Johannes Berg <johannes@sipsolutions.net> writes:
> On Wed, 2019-10-23 at 11:59 +0200, Toke Høiland-Jørgensen wrote:
>>
>> + if (info->tx_time_est) {
>> + struct sta_info *sta = NULL, *s;
>> + struct rhlist_head *tmp;
>> +
>> + rcu_read_lock();
>> +
>> + for_each_sta_info(local, hdr->addr1, s, tmp) {
>> + /* skip wrong virtual interface */
>> + if (!ether_addr_equal(hdr->addr2, s->sdata->vif.addr))
>> + continue;
>> +
>> + sta = s;
>> + break;
>> + }
>
> I guess that is better than looking up the sdata and then using
> sta_info_get(), but I think I'd like to see this wrapped into a function
> (even if it's an inline) in sta_info.{c,h}.
OK, can do.
>> + airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta,
>> + skb->len);
>> + if (airtime) {
>> + /* We only have 10 bits in tx_time_est, so store airtime
>> + * in increments of 4us and clamp the maximum to 2**12-1
>> + */
>> + airtime = min_t(u32, airtime, 4095) & ~3U;
>> + info->tx_time_est = airtime >> 2;
>> + ieee80211_sta_update_pending_airtime(local, tx.sta,
>> + txq->ac, airtime,
>> + false);
>
> I wonder if it'd be better to pass the shifted value to
> ieee80211_sta_update_pending_airtime() to avoid all the shifting in all
> places?
>
> You could even store the shifted value in "aql_tx_pending" and
> "aql_total_pending_airtime" etc., it's completely equivalent, and only
> shift it out for people looking at debugfs.
My reasoning for doing it this way was that we have another set of APIs
dealing with airtime which doesn't do any shifting; so keeping the APIs
in the same unit (straight airtime) seemed less confusing.
We could add (inline) setter and getter functions for the tx_time_est
field instead to avoid sprinkling shifts all over the place? :)
-Toke
next prev parent reply other threads:[~2019-11-08 11:01 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-23 9:58 [Make-wifi-fast] [PATCH v6 0/4] Add Airtime Queue Limits (AQL) to mac80211 Toke Høiland-Jørgensen
2019-10-23 9:59 ` [Make-wifi-fast] [PATCH v6 1/4] mac80211: Shrink the size of ack_frame_id to make room for tx_time_est Toke Høiland-Jørgensen
2019-11-08 10:03 ` Johannes Berg
2019-10-23 9:59 ` [Make-wifi-fast] [PATCH v6 2/4] mac80211: Import airtime calculation code from mt76 Toke Høiland-Jørgensen
2019-11-08 10:07 ` Johannes Berg
2019-11-08 10:55 ` Toke Høiland-Jørgensen
2019-11-08 10:57 ` Johannes Berg
2019-10-23 9:59 ` [Make-wifi-fast] [PATCH v6 3/4] mac80211: Implement Airtime-based Queue Limit (AQL) Toke Høiland-Jørgensen
2019-11-08 10:09 ` Johannes Berg
2019-11-08 10:56 ` Toke Høiland-Jørgensen
2019-11-08 10:59 ` Johannes Berg
2019-11-08 11:10 ` Toke Høiland-Jørgensen
2019-11-08 11:17 ` Johannes Berg
2019-11-09 1:04 ` Kan Yan
2019-11-09 1:22 ` Kan Yan
2019-11-09 11:22 ` Toke Høiland-Jørgensen
2019-10-23 9:59 ` [Make-wifi-fast] [PATCH v6 4/4] mac80211: Use Airtime-based Queue Limits (AQL) on packet dequeue Toke Høiland-Jørgensen
2019-11-08 10:17 ` Johannes Berg
2019-11-08 11:01 ` Toke Høiland-Jørgensen [this message]
2019-11-08 11:05 ` Johannes Berg
2019-11-07 6:14 ` [Make-wifi-fast] [PATCH v6 0/4] Add Airtime Queue Limits (AQL) to mac80211 Kan Yan
2019-11-07 10:55 ` Toke Høiland-Jørgensen
2019-11-07 21:24 ` Dave Taht
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/make-wifi-fast.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877e4afx83.fsf@toke.dk \
--to=toke@redhat.com \
--cc=ath10k@lists.infradead.org \
--cc=johannes@sipsolutions.net \
--cc=john@phrozen.org \
--cc=kevinhayes@google.com \
--cc=kyan@google.com \
--cc=linux-wireless@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=make-wifi-fast@lists.bufferbloat.net \
--cc=nbd@nbd.name \
--cc=rmanohar@codeaurora.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox