All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Kan Yan <kyan@google.com>, Yibo Zhao <yiboz@codeaurora.org>
Cc: Felix Fietkau <nbd@nbd.name>,
	Johannes Berg <johannes@sipsolutions.net>,
	linux-wireless@vger.kernel.org,
	make-wifi-fast@lists.bufferbloat.net,
	John Crispin <john@phrozen.org>,
	Lorenzo Bianconi <lorenzo@kernel.org>,
	linux-wireless-owner@vger.kernel.org
Subject: Re: [PATCH RFC/RFT 4/4] mac80211: Apply Airtime-based Queue Limit (AQL) on packet dequeue
Date: Sun, 29 Sep 2019 21:18:24 +0200	[thread overview]
Message-ID: <87muemykqn.fsf@toke.dk> (raw)
In-Reply-To: <CA+iem5sGkRQy4B=Mz-C90sfqgFmuywa=W7Yjy2CDd8hfppQkvQ@mail.gmail.com>

Kan Yan <kyan@google.com> writes:

>> No, ath10k would continue to do what it was always doing. Drivers that
>> can report after-the-fact airtime usage per-frame (like ath9k) will
>> continue to do that. In both of those cases, the airtime estimate is
>> only used to throttle the queue, not to schedule for fairness.
> You are right, I didn't realize ath9k reports per frame airtime usage.
>
>> Yeah, I was wondering about that. Makes sense. Why 24ms, exactly?
> The per interface 24 ms queue limit is an empirical number that works
> well for both achieve low latency when there is a lot of stations and
> get high throughput when there is only 1-2 stations.  We could make it
> configurable.

Right. "Found by trial and error" is a fine answer as far as I'm
concerned :)

But yeah, this should probably be configurable, like BQL is.

>> BTW, I think Felix' concern about powersave was in relation to AQL: If
>> we don't handle power save in that, we can end up in a situation where
>>the budget for packets allowed to be queued in the firmware is taken up
>> entirely by stations that are currently in powersave mode; which would
>> throttle the device completely. So we should take that into account for
>> AQL; for the fairness scheduler, stations in powersave are already
>> unscheduled, so that should be fine.
> I think the accounting for the airtime of frames in the power saving
> queue could affect both the fairness scheduler and AQL.
> For chipset with firmware offload, PS handling is mostly done by
> firmware, so host driver's knowledge of PS state could be slightly
> out-of-dated. The power save behavior also make it harder to the
> airtime_weight correct for the fairness scheduler.

Hmm, maybe. I'm not sure how significant this effect would be, but I
guess we'll need to find out :)


> Powersave mode's impact to AQL is much smaller. The lower per station
> queue limit is not impacted by other stations PS behavior, since the
> estimated future airtime is not weighted for other stations and a
> station won't get blocked due to others stations in PS mode.
> Station in PS mode do affects AQL's higher per interface limit, but in
> an inconsequential way. The per interface AQL queue limit is quite
> large (24 ms), hence airtime from packets in PS queue is unlikely to
> have a significant impact on it. Still, it will be better if the
> packet in power saving queue can be taken into account.

I guess the risk is lower when with a 24ms per-iface limit; but with
enough stations I guess it could still happen, no? So we should probably
handle this case...

>> > make it easier to schedule multiple stations, I think it has some merit
>> > that makes it worth trying out. We should probably get the AQL stuff
>> > done first, though, and try the virtual time scheduler on top of that.
>> Agree that we should get the AQL stuff done first since I believe it
>> will help to fix the issue mentioned above.
> That sounds like a good plan. The virtual time scheduler is more
> involved and will take more work to get it right. It make sense to get
> AQL done first.

Cool. Are you going to submit a ported version of your implementation?
Then we can work from the two submissions and see if we can't converge
on something...

-Toke


  reply	other threads:[~2019-09-29 19:18 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-19 12:22 [PATCH RFC/RFT 0/4] Add Airtime Queue Limits (AQL) to mac80211 Toke Høiland-Jørgensen
2019-09-19 12:22 ` [PATCH RFC/RFT 1/4] mac80211: Rearrange ieee80211_tx_info to make room for tx_time_est Toke Høiland-Jørgensen
2019-10-01  8:44   ` Johannes Berg
2019-10-01  9:08     ` Toke Høiland-Jørgensen
2019-10-01  9:12       ` Johannes Berg
2019-10-01  9:39         ` Toke Høiland-Jørgensen
2019-09-19 12:22 ` [PATCH RFC/RFT 2/4] mac80211: Add API function to set the last TX bitrate for a station Toke Høiland-Jørgensen
2019-10-01  8:46   ` Johannes Berg
2019-10-01  9:09     ` Toke Høiland-Jørgensen
2019-09-19 12:22 ` [PATCH RFC/RFT 3/4] ath10k: Pass last TX bitrate up to mac80211 Toke Høiland-Jørgensen
2019-09-19 12:22 ` [PATCH RFC/RFT 4/4] mac80211: Apply Airtime-based Queue Limit (AQL) on packet dequeue Toke Høiland-Jørgensen
2019-09-19 17:44   ` Peter Oh
2019-09-19 17:46     ` Ben Greear
2019-09-19 17:54       ` Peter Oh
2019-09-19 18:03         ` Peter Oh
2019-09-19 18:18           ` [Make-wifi-fast] " Dave Taht
2019-09-19 20:09             ` John Yates
2019-09-19 20:15               ` Toke Høiland-Jørgensen
2019-09-19 18:03         ` Toke Høiland-Jørgensen
2019-09-20 12:06   ` Lorenzo Bianconi
2019-09-20 12:54     ` Toke Høiland-Jørgensen
2019-09-20 13:06       ` Lorenzo Bianconi
2019-09-20 13:32         ` Toke Høiland-Jørgensen
2019-09-20 22:55           ` Kan Yan
2019-09-21 12:11             ` Toke Høiland-Jørgensen
2019-09-25  7:37   ` Yibo Zhao
2019-09-25  8:11     ` Toke Høiland-Jørgensen
2019-09-25 11:54       ` Yibo Zhao
2019-09-25 12:52         ` Toke Høiland-Jørgensen
2019-09-26  0:27           ` Kan Yan
2019-09-26  0:34             ` Kan Yan
2019-09-26  5:57               ` Toke Høiland-Jørgensen
2019-09-26  6:04             ` Toke Høiland-Jørgensen
2019-09-26 12:53   ` Felix Fietkau
2019-09-26 13:17     ` Toke Høiland-Jørgensen
2019-09-26 13:47       ` Felix Fietkau
2019-09-26 15:19         ` Toke Høiland-Jørgensen
2019-09-27  2:42           ` Kan Yan
2019-09-27  6:12             ` Toke Høiland-Jørgensen
2019-09-27  9:20               ` Yibo Zhao
2019-09-28 20:24                 ` Kan Yan
2019-09-29 19:18                   ` Toke Høiland-Jørgensen [this message]
2019-10-01  4:47                     ` Kan Yan
2019-10-01  6:57                       ` Toke Høiland-Jørgensen
2019-09-19 14:12 ` [PATCH RFC/RFT 0/4] Add Airtime Queue Limits (AQL) to mac80211 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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87muemykqn.fsf@toke.dk \
    --to=toke@redhat.com \
    --cc=johannes@sipsolutions.net \
    --cc=john@phrozen.org \
    --cc=kyan@google.com \
    --cc=linux-wireless-owner@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=lorenzo@kernel.org \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    --cc=nbd@nbd.name \
    --cc=yiboz@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.