aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2020-11-07 17:50:20 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2021-02-14 15:13:40 +0100
commitbf6f7cf29bdbf1fcd1176184d759d2a51a17b730 (patch)
tree9bbf079a2cf5c20b44217b8ad30eaf4a650e445b /package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch
parent1caa81e505a1da0ebd70351996e382fa9dafaa8d (diff)
downloadupstream-bf6f7cf29bdbf1fcd1176184d759d2a51a17b730.tar.gz
upstream-bf6f7cf29bdbf1fcd1176184d759d2a51a17b730.tar.bz2
upstream-bf6f7cf29bdbf1fcd1176184d759d2a51a17b730.zip
mac80211: Update to version 5.9.12-1
The removed patches were applied upstream. Remove the 300-mac80211-optimize-skb-resizing.patch. This patch was not applied upstream, but it conflicts with upstream changes and needs bigger changes. It was applied with Felix to remove this patch for now. It should be reworked and then send upstream later. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Diffstat (limited to 'package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch')
-rw-r--r--package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch67
1 files changed, 0 insertions, 67 deletions
diff --git a/package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch b/package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch
deleted file mode 100644
index a5df07e58d..0000000000
--- a/package/kernel/mac80211/patches/subsys/313-mac80211-improve-AQL-aggregation-estimation-for-low-.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Wed, 12 Aug 2020 17:07:10 +0200
-Subject: [PATCH] mac80211: improve AQL aggregation estimation for low data
- rates
-
-Links with low data rates use much smaller aggregates and are much more
-sensitive to latency added by bufferbloat.
-Tune the assumed aggregation length based on the tx rate duration.
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/mac80211/airtime.c
-+++ b/net/mac80211/airtime.c
-@@ -647,27 +647,41 @@ u32 ieee80211_calc_expected_tx_airtime(s
- if (pubsta) {
- struct sta_info *sta = container_of(pubsta, struct sta_info,
- sta);
-+ struct ieee80211_rx_status stat;
- struct ieee80211_tx_rate *rate = &sta->tx_stats.last_rate;
- struct rate_info *ri = &sta->tx_stats.last_rate_info;
-- u32 airtime;
-+ u32 duration, overhead;
-+ u8 agg_shift;
-
-- if (!(rate->flags & (IEEE80211_TX_RC_VHT_MCS |
-- IEEE80211_TX_RC_MCS)))
-- ampdu = false;
-+ if (ieee80211_fill_rx_status(&stat, hw, rate, ri, band, len))
-+ return 0;
-
-+ if (stat.encoding == RX_ENC_LEGACY || !ampdu)
-+ return ieee80211_calc_rx_airtime(hw, &stat, len);
-+
-+ duration = ieee80211_get_rate_duration(hw, &stat, &overhead);
- /*
- * Assume that HT/VHT transmission on any AC except VO will
- * use aggregation. Since we don't have reliable reporting
-- * of aggregation length, assume an average of 16.
-+ * of aggregation length, assume an average size based on the
-+ * tx rate.
- * This will not be very accurate, but much better than simply
-- * assuming un-aggregated tx.
-+ * assuming un-aggregated tx in all cases.
- */
-- airtime = ieee80211_calc_tx_airtime_rate(hw, rate, ri, band,
-- ampdu ? len * 16 : len);
-- if (ampdu)
-- airtime /= 16;
-+ if (duration > 400) /* <= VHT20 MCS2 1S */
-+ agg_shift = 1;
-+ else if (duration > 250) /* <= VHT20 MCS3 1S or MCS1 2S */
-+ agg_shift = 2;
-+ else if (duration > 150) /* <= VHT20 MCS5 1S or MCS3 2S */
-+ agg_shift = 3;
-+ else
-+ agg_shift = 4;
-+
-+ duration *= len;
-+ duration /= AVG_PKT_SIZE;
-+ duration /= 1024;
-
-- return airtime;
-+ return duration + (overhead >> agg_shift);
- }
-
- if (!conf)