History

mac80211: Turn AQL into an NL80211_EXT_FEATURE

Instead of just having an airtime flag in debugfs, turn AQL into a proper NL80211_EXT_FEATURE, so drivers can turn it on when they are ready, and so we also expose the presence of the feature to userspace. This also has the effect of flipping the default, so drivers have to opt in to using AQL instead of getting it by default with TXQs. To keep functionality the same as pre-patch, we set this feature for ath10k (which is where it is needed the most). While we're at it, split out the debugfs interface so AQL gets its own per-station debugfs file instead of using the 'airtime' file. [Johannes:] This effectively disables AQL for iwlwifi, where it fixes a number of issues: * TSO in iwlwifi is causing underflows and associated warnings in AQL * HE (802.11ax) rates aren't reported properly so at HE rates, AQL could never have a valid estimate (it'd use 6 Mbps instead of up to 2400!)

Toke Høiland-Jørgensen committed 6 years ago

Commit 911bde01 parent e548f747 files · +70 −24Browse files

Showing the changes to include/uapi/linux (1 of 7 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+5−0
@@ -5517,6 +5517,10 @@ enum nl80211_feature_flags { · 5516 unmodified lines
55175517 * with VLAN tagged frames and separate VLAN-specific netdevs added using
55185518 * vconfig similarly to the Ethernet case.
55195519 *
5520+ * @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL)
5521+ * feature, which prevents bufferbloat by using the expected transmission
5522+ * time to limit the amount of data buffered in the hardware.
5523+ *
55205524 * @NUM_NL80211_EXT_FEATURES: number of extended features.
55215525 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
55225526 */
@@ -5563,6 +5567,7 @@ enum nl80211_ext_feature_index { · 40 unmodified lines
55635567 NL80211_EXT_FEATURE_STA_TX_PWR,
55645568 NL80211_EXT_FEATURE_SAE_OFFLOAD,
55655569 NL80211_EXT_FEATURE_VLAN_OFFLOAD,
5570+ NL80211_EXT_FEATURE_AQL,
55665571
55675572 /* add new features before the definition below */
55685573 NUM_NL80211_EXT_FEATURES,