linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Taht <dave@taht.net>
To: Kan Yan <kyan@google.com>
Cc: "Toke Høiland-Jørgensen" <toke@redhat.com>,
	"Rajkumar Manoharan" <rmanohar@codeaurora.org>,
	"Kevin Hayes" <kevinhayes@google.com>,
	Make-Wifi-fast <make-wifi-fast@lists.bufferbloat.net>,
	linux-wireless@vger.kernel.org, ath10k@lists.infradead.org,
	"John Crispin" <john@phrozen.org>,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"Lorenzo Bianconi" <lorenzo@kernel.org>,
	"Felix Fietkau" <nbd@nbd.name>
Subject: Re: [Make-wifi-fast] [PATCH v6 0/4] Add Airtime Queue Limits (AQL) to mac80211
Date: Thu, 07 Nov 2019 13:24:12 -0800	[thread overview]
Message-ID: <87pni3fkhv.fsf@taht.net> (raw)
In-Reply-To: <CA+iem5s6jDNR+yA21UB_zJiZeVxix_QaO6RYw6sN69j2859zFw@mail.gmail.com> (Kan Yan's message of "Wed, 6 Nov 2019 22:14:20 -0800")

Kan Yan <kyan@google.com> writes:

> Patchset v6 works for me with ath10k driver.  AQL does its job as
> expected and tests show very significant reduction in latency in
> congested environment. The txq stuck issue in patchset v4 got fixed.
>
> However, the device's total pending airtime count still underflows
> sometimes. Even though it doesn't cause apparent side effect, there is
> some issue with the pending airtime update and needs further
> debugging.
>
> Regards,
> Kan

That's great to hear! I have been trying to clear some time to get on
this too (I have a HUGE number of fq_codel related updates on top of
this worth testing) but it's still looking a few weeks out.

>
>
> On Wed, Oct 23, 2019 at 2:59 AM Toke Høiland-Jørgensen <toke@redhat.com> wrote:
>>
>> This series is a first attempt at porting the Airtime Queue Limits concept from
>> the out-of-tree ath10k implementation[0] to mac80211. This version takes Kan's
>> patch to do the throttling in mac80211, and replaces the driver API with the
>> mechanism from the previous version of my series, which instead calculated the
>> expected airtime at dequeue time inside mac80211, storing it in the SKB cb
>> field.
>>
>> This series also imports Felix' airtime calculation code from mt76 into
>> mac80211, adjusting the API so it can be used from TX dequeue, by extracting the
>> latest TX rate from the tx_stats structure kept for each station.
>>
>> As before, I've only compile tested this (lacking the proper hardware to do more
>> testing). So I'm hoping someone with a proper testing setup can take the whole
>> thing for a spin... :)
>>
>> The series is also available in my git repo here:
>> https://git.kernel.org/pub/scm/linux/kernel/git/toke/linux.git/log/?h=mac80211-aql-06
>>
>> Changelog:
>>
>> v6:
>>   - Fix sta lookup in ieee80211_report_used_skb().
>>   - Move call to ieee80211_sta_update_pending_airtime() to a bit later in
>>     __ieee80211_tx_status()
>> v5:
>>   - Add missing export of ieee80211_calc_rx_airtime() and make
>>     ieee80211_calc_tx_airtime_rate() static (kbuildbot).
>>   - Use skb_get_queue_mapping() to get the AC from the skb.
>>   - Take basic rate configuration for the BSS into account when calculating
>>     multicast rate.
>> v4:
>>   - Fix calculation that clamps the maximum airtime to fit into 10 bits
>>   - Incorporate Rich Brown's nits for the commit message in Kan's patch
>>   - Add fewer local variables to ieee80211_tx_dequeue()
>> v3:
>>   - Move the tx_time_est field so it's shared with ack_frame_id, and use units
>>     of 4us for the value stored in it.
>>   - Move the addition of the Ethernet header size into ieee80211_calc_expected_tx_airtime()
>> v2:
>>   - Integrate Kan's approach to airtime throttling.
>>   - Hopefully fix the cb struct alignment on big-endian architectures.
>>
>> ---
>>
>> Kan Yan (1):
>>       mac80211: Implement Airtime-based Queue Limit (AQL)
>>
>> Toke Høiland-Jørgensen (3):
>>       mac80211: Shrink the size of ack_frame_id to make room for tx_time_est
>>       mac80211: Import airtime calculation code from mt76
>>       mac80211: Use Airtime-based Queue Limits (AQL) on packet dequeue
>>
>>
>>  include/net/cfg80211.h     |    7 +
>>  include/net/mac80211.h     |   45 +++++
>>  net/mac80211/Makefile      |    3
>>  net/mac80211/airtime.c     |  390 ++++++++++++++++++++++++++++++++++++++++++++
>>  net/mac80211/cfg.c         |    2
>>  net/mac80211/debugfs.c     |   78 +++++++++
>>  net/mac80211/debugfs_sta.c |   43 ++++-
>>  net/mac80211/ieee80211_i.h |    8 +
>>  net/mac80211/main.c        |    9 +
>>  net/mac80211/sta_info.c    |   32 ++++
>>  net/mac80211/sta_info.h    |    8 +
>>  net/mac80211/status.c      |   33 ++++
>>  net/mac80211/tx.c          |   69 +++++++-
>>  13 files changed, 709 insertions(+), 18 deletions(-)
>>  create mode 100644 net/mac80211/airtime.c
>>
> _______________________________________________
> Make-wifi-fast mailing list
> Make-wifi-fast@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/make-wifi-fast

      parent reply	other threads:[~2019-11-07 21:31 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-23  9:58 [PATCH v6 0/4] Add Airtime Queue Limits (AQL) to mac80211 Toke Høiland-Jørgensen
2019-10-23  9:59 ` [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 ` [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 ` [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:22             ` Kan Yan
2019-11-09 11:22               ` Toke Høiland-Jørgensen
2019-10-23  9:59 ` [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
2019-11-08 11:05       ` Johannes Berg
2019-11-07  6:14 ` [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 [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

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

  git send-email \
    --in-reply-to=87pni3fkhv.fsf@taht.net \
    --to=dave@taht.net \
    --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 \
    --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).