aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/subsys/305-mac80211-improve-AQL-tx-airtime-estimation.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/305-mac80211-improve-AQL-tx-airtime-estimation.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/305-mac80211-improve-AQL-tx-airtime-estimation.patch')
-rw-r--r--package/kernel/mac80211/patches/subsys/305-mac80211-improve-AQL-tx-airtime-estimation.patch81
1 files changed, 0 insertions, 81 deletions
diff --git a/package/kernel/mac80211/patches/subsys/305-mac80211-improve-AQL-tx-airtime-estimation.patch b/package/kernel/mac80211/patches/subsys/305-mac80211-improve-AQL-tx-airtime-estimation.patch
deleted file mode 100644
index bee43a60fa..0000000000
--- a/package/kernel/mac80211/patches/subsys/305-mac80211-improve-AQL-tx-airtime-estimation.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Fri, 24 Jul 2020 20:25:07 +0200
-Subject: [PATCH] mac80211: improve AQL tx airtime estimation
-
-AQL does not take into account that most HT/VHT/HE traffic is A-MPDU aggregated.
-Because of that, the per-packet airtime overhead is vastly overestimated.
-Improve it by assuming an average aggregation length of 16 for non-legacy
-traffic if not using the VO AC queue.
-This should improve performance with high data rates, especially with multiple
-stations
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/mac80211/airtime.c
-+++ b/net/mac80211/airtime.c
-@@ -551,7 +551,7 @@ EXPORT_SYMBOL_GPL(ieee80211_calc_tx_airt
- u32 ieee80211_calc_expected_tx_airtime(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- struct ieee80211_sta *pubsta,
-- int len)
-+ int len, bool ampdu)
- {
- struct ieee80211_supported_band *sband;
- struct ieee80211_chanctx_conf *conf;
-@@ -572,10 +572,26 @@ u32 ieee80211_calc_expected_tx_airtime(s
- if (pubsta) {
- struct sta_info *sta = container_of(pubsta, struct sta_info,
- sta);
-+ struct ieee80211_tx_rate *rate = &sta->tx_stats.last_rate;
-+ u32 airtime;
-
-- return ieee80211_calc_tx_airtime_rate(hw,
-- &sta->tx_stats.last_rate,
-- band, len);
-+ if (!(rate->flags & (IEEE80211_TX_RC_VHT_MCS |
-+ IEEE80211_TX_RC_MCS)))
-+ ampdu = false;
-+
-+ /*
-+ * 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.
-+ * This will not be very accurate, but much better than simply
-+ * assuming un-aggregated tx.
-+ */
-+ airtime = ieee80211_calc_tx_airtime_rate(hw, rate, band,
-+ ampdu ? len * 16 : len);
-+ if (ampdu)
-+ airtime /= 16;
-+
-+ return airtime;
- }
-
- if (!conf)
---- a/net/mac80211/ieee80211_i.h
-+++ b/net/mac80211/ieee80211_i.h
-@@ -2294,7 +2294,7 @@ extern const struct ethtool_ops ieee8021
- u32 ieee80211_calc_expected_tx_airtime(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- struct ieee80211_sta *pubsta,
-- int len);
-+ int len, bool ampdu);
- #ifdef CPTCFG_MAC80211_NOINLINE
- #define debug_noinline noinline
- #else
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -3707,10 +3707,11 @@ encap_out:
-
- if (vif &&
- wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) {
-+ bool ampdu = txq->ac != IEEE80211_AC_VO;
- u32 airtime;
-
- airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta,
-- skb->len);
-+ skb->len, ampdu);
- if (airtime) {
- airtime = ieee80211_info_set_tx_time_est(info, airtime);
- ieee80211_sta_update_pending_airtime(local, tx.sta,