mbox series

[0/6] Move TXQ scheduling and airtime fairness into mac80211

Message ID 1540033534-11211-1-git-send-email-rmanohar@codeaurora.org (mailing list archive)
Headers show
Series Move TXQ scheduling and airtime fairness into mac80211 | expand

Message

Rajkumar Manoharan Oct. 20, 2018, 11:05 a.m. UTC
Toke,

It is been a while since mac80211 TXQ discussion started. Here is the consolidated
series of mac80211, ath9k and ath10k changes to move TXQ scheduling and airtime
fairness into mac80211. The major changes w.r.t 5th RFC version are in may_transmit()
API. Whenever the driver checks deficit for given TXQ, the list will be
reordered so that driver/firmware RR quickly becomes in sync with mac80211
list. Also airtime tasklet approach cumbersome and causing regression
in multi client performance.

- Removed airtime kickout tasklet

- Reworked on ieee80211_txq_may_transmit() API

- Provided option to configure driver specific default airtime. 

- Bundled ath10k changes along with this series.

-Rajkumar
 
Rajkumar Manoharan (2):
  ath10k: migrate to mac80211 txq scheduling
  ath10k: reporting estimated tx airtime for fairness

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/ath10k/core.c     |   2 -
 drivers/net/wireless/ath/ath10k/core.h     |   8 +-
 drivers/net/wireless/ath/ath10k/htc.h      |   1 -
 drivers/net/wireless/ath/ath10k/htt_rx.c   |   9 ++
 drivers/net/wireless/ath/ath10k/mac.c      | 155 +++++++++++-------
 drivers/net/wireless/ath/ath10k/txrx.c     |   4 +
 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 |  70 ---------
 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                     | 118 +++++++++++++-
 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                 |  50 +++++-
 net/mac80211/driver-ops.h                  |   9 ++
 net/mac80211/ieee80211_i.h                 |  12 ++
 net/mac80211/main.c                        |   9 ++
 net/mac80211/sta_info.c                    |  54 ++++++-
 net/mac80211/sta_info.h                    |  13 ++
 net/mac80211/status.c                      |   6 +
 net/mac80211/tx.c                          | 140 ++++++++++++++++-
 net/wireless/nl80211.c                     |  28 ++++
 28 files changed, 646 insertions(+), 356 deletions(-)

Comments

Toke Høiland-Jørgensen Oct. 21, 2018, 11:27 a.m. UTC | #1
Rajkumar Manoharan <rmanohar@codeaurora.org> writes:

> Toke,
>
> It is been a while since mac80211 TXQ discussion started. Here is the consolidated
> series of mac80211, ath9k and ath10k changes to move TXQ scheduling and airtime
> fairness into mac80211. The major changes w.r.t 5th RFC version are in may_transmit()
> API. Whenever the driver checks deficit for given TXQ, the list will be
> reordered so that driver/firmware RR quickly becomes in sync with mac80211
> list. Also airtime tasklet approach cumbersome and causing regression
> in multi client performance.

Cool, thanks. I'll look at this in more detail later, but in the
meantime, do you have any test results to share? Specifically, how did
you measure that the fairness part actually works? :)

-Toke