2019-10-11 02:27:40

by Kan Yan

[permalink] [raw]
Subject: [PATCH v4 0/2] Implement Airtime-based Queue Limit (AQL)

This patch series implements Airtime-based Queue Limit (AQL) in the mac80211 and Ath10k driver. It is based on an earlier version from the ChromiumOS tree[0].

This version has been tested with QCA9884 platform with 4.14 kernel. Tests show AQL is able to reduce latency by an order of magnitude in a congested environment without negative impact on the throughput.

[0] https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1703105/7

Kan Yan (2):
mac80211: Implement Airtime-based Queue Limit (AQL)
ath10k: Enable Airtime-based Queue Limit (AQL)

drivers/net/wireless/ath/ath10k/htt_rx.c | 1 +
drivers/net/wireless/ath/ath10k/mac.c | 6 +-
drivers/net/wireless/ath/ath10k/txrx.c | 11 +++-
include/net/cfg80211.h | 7 +++
include/net/mac80211.h | 47 ++++++++++++++
net/mac80211/debugfs.c | 78 ++++++++++++++++++++++++
net/mac80211/debugfs_sta.c | 43 ++++++++++---
net/mac80211/ieee80211_i.h | 4 ++
net/mac80211/main.c | 9 ++-
net/mac80211/sta_info.c | 33 ++++++++++
net/mac80211/sta_info.h | 4 ++
net/mac80211/tx.c | 46 +++++++++++++-
12 files changed, 270 insertions(+), 19 deletions(-)

--
Changes from v1:
- Fix checkpatch error.
- Keep iterate the list of active_txq until an eligible txq's deficit become non-negative in ieee80211_next_txq(), instead of break the loop after one iteration.
- Enforce the AQL limit in ath10k's pull mode in ath10k_htt_rx_tx_fetch_ind()

Changes from v2:
- More coding style fixes.
- Fixed a bug that txq is not removed from the active_txqs list when txq.sta is null.
- Removed AQL queue limit check from ieee80211_txq_may_transmit(), so at least one frame will be sent to the firmware when called from ath10k_htt_rx_tx_fetch_ind() in ath10k's poll mode.

Changes from v3:
- Coding style fixes.


2019-10-14 09:08:57

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v4 0/2] Implement Airtime-based Queue Limit (AQL)

Kan Yan <[email protected]> writes:

> This patch series implements Airtime-based Queue Limit (AQL) in the mac80211 and Ath10k driver. It is based on an earlier version from the ChromiumOS tree[0].
>
> This version has been tested with QCA9884 platform with 4.14 kernel. Tests show AQL is able to reduce latency by an order of magnitude in a congested environment without negative impact on the throughput.
>
> [0] https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1703105/7
>
> Kan Yan (2):
> mac80211: Implement Airtime-based Queue Limit (AQL)
> ath10k: Enable Airtime-based Queue Limit (AQL)

Please always include a change log so that people know what has changed
since the previous version:

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#changelog_missing

--
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2019-10-14 09:19:06

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v4 0/2] Implement Airtime-based Queue Limit (AQL)

Kalle Valo <[email protected]> writes:

> Kan Yan <[email protected]> writes:
>
>> This patch series implements Airtime-based Queue Limit (AQL) in the
>> mac80211 and Ath10k driver. It is based on an earlier version from
>> the ChromiumOS tree[0].
>>
>> This version has been tested with QCA9884 platform with 4.14 kernel.
>> Tests show AQL is able to reduce latency by an order of magnitude in
>> a congested environment without negative impact on the throughput.
>>
>> [0]
>> https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1703105/7
>>
>> Kan Yan (2):
>> mac80211: Implement Airtime-based Queue Limit (AQL)
>> ath10k: Enable Airtime-based Queue Limit (AQL)
>
> Please always include a change log so that people know what has changed
> since the previous version:
>
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#changelog_missing

Never mind, you actually had the changelog after the signature separator
("-- \n" line) and I automatically skip the signature :) So instead I
recommend moving the change log up and above the signature separator.

--
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2019-10-15 01:56:45

by Kan Yan

[permalink] [raw]
Subject: Re: [PATCH v4 0/2] Implement Airtime-based Queue Limit (AQL)

Hi Kalle,

Thanks for the help and tips. Will do that if I need to submit again.

I believe Toke will integrate this with his version and move the
estimating pending airtime part to mac80211, so maybe in the next
version, ath10k change is no longer required.

Thanks,
Kan


On Mon, Oct 14, 2019 at 2:18 AM Kalle Valo <[email protected]> wrote:
>
> Kalle Valo <[email protected]> writes:
>
> > Kan Yan <[email protected]> writes:
> >
> >> This patch series implements Airtime-based Queue Limit (AQL) in the
> >> mac80211 and Ath10k driver. It is based on an earlier version from
> >> the ChromiumOS tree[0].
> >>
> >> This version has been tested with QCA9884 platform with 4.14 kernel.
> >> Tests show AQL is able to reduce latency by an order of magnitude in
> >> a congested environment without negative impact on the throughput.
> >>
> >> [0]
> >> https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1703105/7
> >>
> >> Kan Yan (2):
> >> mac80211: Implement Airtime-based Queue Limit (AQL)
> >> ath10k: Enable Airtime-based Queue Limit (AQL)
> >
> > Please always include a change log so that people know what has changed
> > since the previous version:
> >
> > https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#changelog_missing
>
> Never mind, you actually had the changelog after the signature separator
> ("-- \n" line) and I automatically skip the signature :) So instead I
> recommend moving the change log up and above the signature separator.
>
> --
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2019-10-21 14:33:59

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v4 0/2] Implement Airtime-based Queue Limit (AQL)

(please don't top post)

Kan Yan <[email protected]> writes:

> I believe Toke will integrate this with his version and move the
> estimating pending airtime part to mac80211, so maybe in the next
> version, ath10k change is no longer required.

What do you mean? Are you saying that I can drop this patch:

[v4,2/2] ath10k: Enable Airtime-based Queue Limit (AQL)

https://patchwork.kernel.org/patch/11184783/

--
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2019-10-21 14:58:30

by Toke Høiland-Jørgensen

[permalink] [raw]
Subject: Re: [PATCH v4 0/2] Implement Airtime-based Queue Limit (AQL)

Kalle Valo <[email protected]> writes:

> (please don't top post)
>
> Kan Yan <[email protected]> writes:
>
>> I believe Toke will integrate this with his version and move the
>> estimating pending airtime part to mac80211, so maybe in the next
>> version, ath10k change is no longer required.
>
> What do you mean? Are you saying that I can drop this patch:
>
> [v4,2/2] ath10k: Enable Airtime-based Queue Limit (AQL)
>
> https://patchwork.kernel.org/patch/11184783/

Yes, we're trying to do it all in mac80211. See
https://patchwork.kernel.org/project/linux-wireless/list/?series=190333

-Toke

2019-10-22 07:43:36

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v4 0/2] Implement Airtime-based Queue Limit (AQL)

Toke Høiland-Jørgensen <[email protected]> writes:

> Kalle Valo <[email protected]> writes:
>
>> (please don't top post)
>>
>> Kan Yan <[email protected]> writes:
>>
>>> I believe Toke will integrate this with his version and move the
>>> estimating pending airtime part to mac80211, so maybe in the next
>>> version, ath10k change is no longer required.
>>
>> What do you mean? Are you saying that I can drop this patch:
>>
>> [v4,2/2] ath10k: Enable Airtime-based Queue Limit (AQL)
>>
>> https://patchwork.kernel.org/patch/11184783/
>
> Yes, we're trying to do it all in mac80211. See
> https://patchwork.kernel.org/project/linux-wireless/list/?series=190333

Thanks, I dropped this patch now.

--
Kalle Valo