[Make-wifi-fast] [PATCH v6 0/4] Add Airtime Queue Limits (AQL) to mac80211

Dave Taht dave at taht.net
Thu Nov 7 16:24:12 EST 2019


Kan Yan <kyan at 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 at 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 at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/make-wifi-fast


More information about the Make-wifi-fast mailing list