Lets make wifi fast again!
 help / color / mirror / Atom feed
From: Kan Yan <kyan@google.com>
To: "Toke Høiland-Jørgensen" <toke@redhat.com>
Cc: Yibo Zhao <yiboz@codeaurora.org>, 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: [Make-wifi-fast] [PATCH RFC/RFT 4/4] mac80211: Apply Airtime-based Queue Limit (AQL) on packet dequeue
Date: Mon, 30 Sep 2019 21:47:18 -0700	[thread overview]
Message-ID: <CA+iem5tDU9RYdUJ5y1E3E1iFRsSX_rA8dbDjaviGBxKyMS_3kA@mail.gmail.com> (raw)
In-Reply-To: <87muemykqn.fsf@toke.dk>

> 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...
Each txq (per sta, per tid) is allowed to release at least the lower
AQL limit amount of packet (default 4ms), which is not affected by
other station's PS behavior and 4ms should be sufficient for most use
cases.
The 24ms per-interface limit is an optimization to get good benchmark
score in peak performance test, which usually only involve 1-2
stations. The higher limit probably won't matter anymore when there
are many stations. I haven't noticed side effects due to PS behavior
in the ChromiumOS version. Still, it is better to be able to take
frames in PS queue in to account,

> 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...
Working on porting, should have something ready before the end of this week.


On Sun, Sep 29, 2019 at 12:18 PM Toke Høiland-Jørgensen <toke@redhat.com> wrote:
>
> 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-10-01  4:47 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-19 12:22 [Make-wifi-fast] [PATCH RFC/RFT 0/4] Add Airtime Queue Limits (AQL) to mac80211 Toke Høiland-Jørgensen
2019-09-19 12:22 ` [Make-wifi-fast] [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 ` [Make-wifi-fast] [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 ` [Make-wifi-fast] [PATCH RFC/RFT 3/4] ath10k: Pass last TX bitrate up to mac80211 Toke Høiland-Jørgensen
2019-09-19 12:22 ` [Make-wifi-fast] [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
     [not found]     ` <879913e9-4254-1381-07f6-d860fb0b8de0@candelatech.com>
2019-09-19 17:54       ` Peter Oh
2019-09-19 18:03         ` Peter Oh
2019-09-19 18:18           ` 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:38           ` Kan Yan
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
2019-10-01  4:47                     ` Kan Yan [this message]
2019-10-01  6:57                       ` Toke Høiland-Jørgensen
2019-09-19 14:12 ` [Make-wifi-fast] [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

  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=CA+iem5tDU9RYdUJ5y1E3E1iFRsSX_rA8dbDjaviGBxKyMS_3kA@mail.gmail.com \
    --to=kyan@google.com \
    --cc=johannes@sipsolutions.net \
    --cc=john@phrozen.org \
    --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=toke@redhat.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox