aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-07-13 07:52:04 +0200
committerFelix Fietkau <nbd@nbd.name>2022-07-13 10:36:16 +0200
commitec9f82fa18c7c8deb4875152d7907855d186f4c6 (patch)
treed9ba01ce9bedd2cdba10a6867e419ea67ede2d9e /package
parent945b13e369ad262ad6d7086e34e048ff6f797bfc (diff)
downloadupstream-ec9f82fa18c7c8deb4875152d7907855d186f4c6.tar.gz
upstream-ec9f82fa18c7c8deb4875152d7907855d186f4c6.tar.bz2
upstream-ec9f82fa18c7c8deb4875152d7907855d186f4c6.zip
mac80211: fix AQL issue with multicast traffic
Exclude multicast from pending AQL budget Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 9f1d6223289b5571ddc77c0e5327ab51137199d9)
Diffstat (limited to 'package')
-rw-r--r--package/kernel/mac80211/patches/subsys/339-mac80211-exclude-multicast-packets-from-AQL-pending-.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/subsys/339-mac80211-exclude-multicast-packets-from-AQL-pending-.patch b/package/kernel/mac80211/patches/subsys/339-mac80211-exclude-multicast-packets-from-AQL-pending-.patch
new file mode 100644
index 0000000000..43c3e75d65
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/339-mac80211-exclude-multicast-packets-from-AQL-pending-.patch
@@ -0,0 +1,30 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Wed, 13 Jul 2022 07:32:26 +0200
+Subject: [PATCH] mac80211: exclude multicast packets from AQL pending airtime
+
+In AP mode, multicast traffic is handled very differently from normal traffic,
+especially if at least one client is in powersave mode.
+This means that multicast packets can be buffered a lot longer than normal
+unicast packets, and can eat up the AQL budget very quickly because of the low
+data rate.
+Along with the recent change to maintain a global PHY AQL limit, this can lead
+to significant latency spikes for unicast traffic.
+
+Since queueing multicast to hardware is currently not constrained by AQL limits
+anyway, let's just exclude it from the AQL pending airtime calculation entirely.
+
+Fixes: 8e4bac067105 ("wifi: mac80211: add a per-PHY AQL limit to improve fairness")
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -3792,7 +3792,7 @@ begin:
+ encap_out:
+ IEEE80211_SKB_CB(skb)->control.vif = vif;
+
+- if (vif &&
++ if (tx.sta &&
+ wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) {
+ bool ampdu = txq->ac != IEEE80211_AC_VO;
+ u32 airtime;