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
5517 * with VLAN tagged frames and separate VLAN-specific netdevs added using5517 * with VLAN tagged frames and separate VLAN-specific netdevs added using
5518 * vconfig similarly to the Ethernet case.5518 * vconfig similarly to the Ethernet case.
5519 *5519 *
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 *
5520 * @NUM_NL80211_EXT_FEATURES: number of extended features.5524 * @NUM_NL80211_EXT_FEATURES: number of extended features.
5521 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.5525 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
5522 */5526 */
@@ -5563,6 +5567,7 @@ enum nl80211_ext_feature_index { · 40 unmodified lines
5563 NL80211_EXT_FEATURE_STA_TX_PWR,5567 NL80211_EXT_FEATURE_STA_TX_PWR,
5564 NL80211_EXT_FEATURE_SAE_OFFLOAD,5568 NL80211_EXT_FEATURE_SAE_OFFLOAD,
5565 NL80211_EXT_FEATURE_VLAN_OFFLOAD,5569 NL80211_EXT_FEATURE_VLAN_OFFLOAD,
5570 NL80211_EXT_FEATURE_AQL,
5566 5571
5567 /* add new features before the definition below */5572 /* add new features before the definition below */
5568 NUM_NL80211_EXT_FEATURES,5573 NUM_NL80211_EXT_FEATURES,