From: Johannes Berg <johannes@sipsolutions.net>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>,
make-wifi-fast@lists.bufferbloat.net,
linux-wireless@vger.kernel.org
Subject: Re: [Make-wifi-fast] [RFC 1/3] mac80211: Add TXQ scheduling API
Date: Tue, 10 Oct 2017 18:05:55 +0200 [thread overview]
Message-ID: <1507651555.26041.81.camel@sipsolutions.net> (raw)
In-Reply-To: <20171010140208.1515-1-toke@toke.dk> (sfid-20171010_160341_258014_BDC1BDA8)
> In particular, I'm not sure what the right thing to do in regards to
> PS wakeup is...
Can you explain what you were _trying_ to do?
I don't like calling this "driver_buffered" because that's already a
term for frames that are buffered in the driver ... :-)
PS is complicated, we basically transmit, in the following order:
* filtered frames (tx_filtered)
* buffered frames (ps_tx_buf)
* regular frames
This is when we _leave_ powersave. When we deliver frames while the
station is sleeping (PS-Poll or U-APSD), they don't even go through the
TXQ. They still come from this place, but currently go directly to the
->tx() method, which to me is actually pretty weird but that's what it
is now.
As I think I said in my other thread, we should probably eventually
just get rid of ps_tx_buf entirely, instead just keeping the frames on
the TXQ. Then, filtered can just be pushed onto txqi->frags [*], and we
get rid of having that separately as well.
Then, we've completely solved the wakeup scenario, we just start
scheduling that TXQ normally again.
For the deliver-while-sleeping (PS-Poll/U-APSD) scenario, I think the
driver should still pull frames, after calling something like
drv_release_buffered_frames(). We want this to be scheduled pretty much
immediately, so we shouldn't just put the TXQ into the normal rotation,
but otherwise it should work similarly - except limited to a certain
number of frames [**].
In this case the driver probably needs to pull the frames using a
different function so that we can
a) tag the packets properly (more-data, EOSP)
b) generate nulldata as EOSP container where needed
Thus, it seems likely that we'll want a separate function, "pull for PS
delivery" rather than the normal ieee80211_tx_dequeue().
johannes
[*] ok not exactly, if there are frags there already things get messy.
but we can probably solve that somehow without needing more special
cases
next prev parent reply other threads:[~2017-10-10 16:05 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-10 14:02 Toke Høiland-Jørgensen
2017-10-10 14:02 ` [Make-wifi-fast] [RFC 2/3] ath9k: Move to mac80211 " Toke Høiland-Jørgensen
2017-10-10 15:54 ` Johannes Berg
2017-10-10 14:02 ` [Make-wifi-fast] [RFC 3/3] ath10k: " Toke Høiland-Jørgensen
2017-10-10 15:53 ` [Make-wifi-fast] [RFC 1/3] mac80211: Add " Johannes Berg
2017-10-10 17:51 ` Toke Høiland-Jørgensen
2017-10-11 8:46 ` Johannes Berg
2017-10-11 13:54 ` Toke Høiland-Jørgensen
2017-10-10 16:05 ` Johannes Berg [this message]
2017-10-10 18:04 ` Toke Høiland-Jørgensen
2017-10-11 8:44 ` Johannes Berg
2017-10-11 14:06 ` Toke Høiland-Jørgensen
2017-10-11 14:15 ` Johannes Berg
2017-10-11 14:29 ` Toke Høiland-Jørgensen
2017-10-11 14:34 ` Johannes Berg
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=1507651555.26041.81.camel@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=make-wifi-fast@lists.bufferbloat.net \
--cc=toke@toke.dk \
/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