mbox series

[RFC,v5,0/4] Move TXQ scheduling and airtime fairness into mac80211

Message ID 153908805217.9471.9290979918041653328.stgit@alrua-kau (mailing list archive)
Headers show
Series Move TXQ scheduling and airtime fairness into mac80211 | expand

Message

Toke Høiland-Jørgensen Oct. 9, 2018, 12:32 p.m. UTC
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(-)