From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: linux-wireless@vger.kernel.org, make-wifi-fast@lists.bufferbloat.net
Cc: Rajkumar Manoharan <rmanohar@codeaurora.org>,
Felix Fietkau <nbd@nbd.name>
Subject: [Make-wifi-fast] [PATCH RFC v3 0/4] Move TXQ scheduling into mac80211
Date: Sat, 08 Sep 2018 00:22:50 +0200 [thread overview]
Message-ID: <153635803319.14170.10011969968767927187.stgit@alrua-x1> (raw)
This is an updated version of the patch series to move TXQ scheduling and
airtime fairness scheduling into mac80211. I've only compile tested this
version, but thought it was better to get the conversation moving instead
of being blocked on me.
This addresses most of the comments from the last round. Specifically:
- It folds in Rajkumar's patches to keep per-AC TXQ lists, and to add an
API that ath10k can use to check if a TXQ may transmit according even
when not using get_next_txq(). I changed a few names and descriptions,
but otherwise it's mostly the same. After the discussions we had in the
last series, I *think* it will work this way, but I'm not entirely sure.
- I got rid of any mention of seqno in next_txq() and schedule_txq() - and
removed the third parameter to schedule_txq() entirely, so drivers can no
longer signal that a TXQ should be allowed to re-appear in a scheduling
round. We can add that back if needed.
- Added a helper function to schedule and wake TXQs in a single call, for
internal mac80211 use.
- Changed the default station weight to 256 and got rid of the per-phy
quantum. This makes it possible to lower station weights without having
to change the weights of every other station.
A few things that were discussed in the last round that I did *not* change:
- I did not add any locking around next_txq(); the driver is still supposed
to maintain a lock that prevents two threads from trying to schedule the
same AC at the same time. This is what drivers already do, so I figured it
was easier to just keep it that way rather than do it in mac80211.
- I didn't get rid of the register_airtime() callback. As far as I can tell,
only iwlwifi uses the tx_time field in the struct tx_info. Which means that
we *could* probably use it for this and just make the other drivers set it;
but I'm not sure what effects that would have in relation to WMM-AC for
those drivers, so I chickened out. Will have to try it out, I guess; but it
also depends on whether ath10k needs to be able to report airtime
asynchronously anyway. So I'll hold off on that for a bit more.
-Toke
---
Toke Høiland-Jørgensen (4):
mac80211: Add TXQ scheduling API
mac80211: Add airtime accounting and scheduling to TXQs
cfg80211: Add airtime statistics and settings
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 | 245 ++++++++--------------------
include/net/cfg80211.h | 12 +
include/net/mac80211.h | 97 +++++++++++
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 | 42 ++++-
net/mac80211/driver-ops.h | 7 +
net/mac80211/ieee80211_i.h | 11 +
net/mac80211/main.c | 5 +
net/mac80211/sta_info.c | 49 +++++-
net/mac80211/sta_info.h | 13 +
net/mac80211/tx.c | 125 ++++++++++++++
net/wireless/nl80211.c | 25 +++
21 files changed, 471 insertions(+), 274 deletions(-)
X-Clacks-Overhead: GNU Terry Pratchett
next reply other threads:[~2018-09-07 22:22 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-07 22:22 Toke Høiland-Jørgensen [this message]
2018-09-07 22:22 ` [Make-wifi-fast] [PATCH RFC v3 1/4] mac80211: Add TXQ scheduling API Toke Høiland-Jørgensen
2018-09-10 7:48 ` Johannes Berg
2018-09-10 10:57 ` Toke Høiland-Jørgensen
2018-09-10 11:03 ` Johannes Berg
2018-09-10 12:39 ` Toke Høiland-Jørgensen
2018-09-10 12:46 ` Johannes Berg
2018-09-10 13:08 ` Toke Høiland-Jørgensen
2018-09-10 13:10 ` Johannes Berg
2018-09-10 13:18 ` Toke Høiland-Jørgensen
2018-09-10 14:51 ` Johannes Berg
2018-09-10 15:00 ` Toke Høiland-Jørgensen
2018-09-11 9:20 ` Johannes Berg
2018-09-11 9:48 ` Toke Høiland-Jørgensen
2018-09-10 8:04 ` Johannes Berg
2018-09-10 11:02 ` Toke Høiland-Jørgensen
2018-09-10 11:12 ` Johannes Berg
2018-09-07 22:22 ` [Make-wifi-fast] [PATCH RFC v3 2/4] mac80211: Add airtime accounting and scheduling to TXQs Toke Høiland-Jørgensen
2018-09-10 8:18 ` Johannes Berg
2018-09-10 11:13 ` Toke Høiland-Jørgensen
2018-09-10 11:22 ` Johannes Berg
2018-09-12 0:07 ` Rajkumar Manoharan
2018-09-12 11:10 ` Toke Høiland-Jørgensen
2018-09-12 16:23 ` Rajkumar Manoharan
2018-09-07 22:22 ` [Make-wifi-fast] [PATCH RFC v3 4/4] ath9k: Switch to mac80211 TXQ scheduling and airtime APIs Toke Høiland-Jørgensen
2018-09-07 22:22 ` [Make-wifi-fast] [PATCH RFC v3 3/4] cfg80211: Add airtime statistics and settings Toke Høiland-Jørgensen
2018-09-10 8:23 ` Johannes Berg
2018-09-10 11:15 ` Toke Høiland-Jørgensen
2018-09-09 22:08 ` [Make-wifi-fast] [PATCH RFC v3 0/4] Move TXQ scheduling into mac80211 Kan Yan
2018-09-10 10:52 ` Toke Høiland-Jørgensen
2018-09-10 7:46 ` Johannes Berg
2018-09-10 11:16 ` Toke Høiland-Jørgensen
2018-09-10 11:24 ` Johannes Berg
2018-09-10 7:52 ` Johannes Berg
2018-09-10 11:17 ` Toke Høiland-Jørgensen
2018-09-10 11:26 ` Johannes Berg
2018-09-13 4:10 ` Kan Yan
2018-09-13 9:25 ` Toke Høiland-Jørgensen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/make-wifi-fast.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=153635803319.14170.10011969968767927187.stgit@alrua-x1 \
--to=toke@toke.dk \
--cc=linux-wireless@vger.kernel.org \
--cc=make-wifi-fast@lists.bufferbloat.net \
--cc=nbd@nbd.name \
--cc=rmanohar@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox