Another updated version, addressing a few issues with the previous version. - Moved the airtime deficit queue wakeup code to its own tasklet to lower overhead. - Change the tasklet to just wake a single queue on each invocation, relying to TX completion to continue transmissions. - Don't try to re-schedule TXQs of stations that are being removed. - A few cleanups and fixes. The one thing I didn't change was to add another callback that the driver can use to trigger the tasklet. Since it's now in its own tasklet, hopefully the overhead is low enough that we can just call it on every end_schedule(); and I'd rather not complicate the driver API further. Thanks to Rajkumar for testing the previous version. I thought I'd have time to test this version myself and was planning to send as a non-RFC PATCH after that, but that time didn't materialise. So I thought it was better to send another RFC version instead of everyone having to suffer from my tardiness :) -Toke --- Toke Høiland-Jørgensen (4): mac80211: Add TXQ scheduling API cfg80211: Add airtime statistics and settings mac80211: Add airtime accounting and scheduling to TXQs ath9k: Switch to mac80211 TXQ scheduling and airtime APIs drivers/net/wireless/ath/ath9k/ath9k.h | 14 -- drivers/net/wireless/ath/ath9k/debug.c | 3 drivers/net/wireless/ath/ath9k/debug.h | 8 - drivers/net/wireless/ath/ath9k/debug_sta.c | 54 ------ drivers/net/wireless/ath/ath9k/init.c | 3 drivers/net/wireless/ath/ath9k/recv.c | 9 - drivers/net/wireless/ath/ath9k/xmit.c | 244 ++++++++-------------------- include/net/cfg80211.h | 10 + include/net/mac80211.h | 113 +++++++++++++ include/uapi/linux/nl80211.h | 15 ++ net/mac80211/agg-tx.c | 2 net/mac80211/cfg.c | 3 net/mac80211/debugfs.c | 3 net/mac80211/debugfs_sta.c | 51 ++++++ net/mac80211/driver-ops.h | 9 + net/mac80211/ieee80211_i.h | 14 ++ net/mac80211/main.c | 11 + net/mac80211/sta_info.c | 54 ++++++ net/mac80211/sta_info.h | 13 + net/mac80211/status.c | 6 + net/mac80211/tx.c | 137 ++++++++++++++++ net/mac80211/util.c | 75 +++++++++ net/wireless/nl80211.c | 29 +++ 23 files changed, 603 insertions(+), 277 deletions(-)