From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Yibo Zhao <yiboz@codeaurora.org>, ath10k@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
Subject: Re: [PATCH 1/4] mac80211: Switch to a virtual time-based airtime scheduler
Date: Tue, 17 Sep 2019 23:31:08 +0200 [thread overview]
Message-ID: <87ftkuip9f.fsf@toke.dk> (raw)
In-Reply-To: <1568639388-27291-1-git-send-email-yiboz@codeaurora.org>
Yibo Zhao <yiboz@codeaurora.org> writes:
> From: Toke Høiland-Jørgensen <toke@redhat.com>
>
> This switches the airtime scheduler in mac80211 to use a virtual time-based
> scheduler instead of the round-robin scheduler used before. This has a
> couple of advantages:
>
> - No need to sync up the round-robin scheduler in firmware/hardware with
> the round-robin airtime scheduler.
>
> - If several stations are eligible for transmission we can schedule both of
> them; no need to hard-block the scheduling rotation until the head of the
> queue has used up its quantum.
>
> - The check of whether a station is eligible for transmission becomes
> simpler (in ieee80211_txq_may_transmit()).
>
> The drawback is that scheduling becomes slightly more expensive, as we need
> to maintain an rbtree of TXQs sorted by virtual time. This means that
> ieee80211_register_airtime() becomes O(logN) in the number of currently
> scheduled TXQs. However, hopefully this number rarely grows too big (it's
> only TXQs currently backlogged, not all associated stations), so it
> shouldn't be too big of an issue.
>
> Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
I'll note that this patch still has the two issues that Felix pointed
out when I posted the RFC version. Namely:
- The use of divisions in the fast path. I guess I need to go write some
reciprocal-calculation code, since that is also an issue with the AQL
patches I linked to before.
- The fact that we don't count the airtime usage of multicast traffic,
which with this series means that the vif TXQ will get priority over
the others. I think we agreed to fix this by just adding an airtime
v_t to the vif as well and use that for scheduling the TXQ. Does
ath10k report airtime usage for multicast as well, or only for
stations?
-Toke
_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k
WARNING: multiple messages have this Message-ID (diff)
From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Yibo Zhao <yiboz@codeaurora.org>, ath10k@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
Subject: Re: [PATCH 1/4] mac80211: Switch to a virtual time-based airtime scheduler
Date: Tue, 17 Sep 2019 23:31:08 +0200 [thread overview]
Message-ID: <87ftkuip9f.fsf@toke.dk> (raw)
In-Reply-To: <1568639388-27291-1-git-send-email-yiboz@codeaurora.org>
Yibo Zhao <yiboz@codeaurora.org> writes:
> From: Toke Høiland-Jørgensen <toke@redhat.com>
>
> This switches the airtime scheduler in mac80211 to use a virtual time-based
> scheduler instead of the round-robin scheduler used before. This has a
> couple of advantages:
>
> - No need to sync up the round-robin scheduler in firmware/hardware with
> the round-robin airtime scheduler.
>
> - If several stations are eligible for transmission we can schedule both of
> them; no need to hard-block the scheduling rotation until the head of the
> queue has used up its quantum.
>
> - The check of whether a station is eligible for transmission becomes
> simpler (in ieee80211_txq_may_transmit()).
>
> The drawback is that scheduling becomes slightly more expensive, as we need
> to maintain an rbtree of TXQs sorted by virtual time. This means that
> ieee80211_register_airtime() becomes O(logN) in the number of currently
> scheduled TXQs. However, hopefully this number rarely grows too big (it's
> only TXQs currently backlogged, not all associated stations), so it
> shouldn't be too big of an issue.
>
> Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
I'll note that this patch still has the two issues that Felix pointed
out when I posted the RFC version. Namely:
- The use of divisions in the fast path. I guess I need to go write some
reciprocal-calculation code, since that is also an issue with the AQL
patches I linked to before.
- The fact that we don't count the airtime usage of multicast traffic,
which with this series means that the vif TXQ will get priority over
the others. I think we agreed to fix this by just adding an airtime
v_t to the vif as well and use that for scheduling the TXQ. Does
ath10k report airtime usage for multicast as well, or only for
stations?
-Toke
next prev parent reply other threads:[~2019-09-17 21:31 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-16 13:09 [PATCH 1/4] mac80211: Switch to a virtual time-based airtime scheduler Yibo Zhao
2019-09-16 13:09 ` Yibo Zhao
2019-09-16 13:09 ` [PATCH 2/4] mac80211: defer txqs removal from rbtree Yibo Zhao
2019-09-16 13:09 ` Yibo Zhao
2019-09-17 21:10 ` Toke Høiland-Jørgensen
2019-09-17 21:10 ` Toke Høiland-Jørgensen
2019-09-18 10:27 ` Yibo Zhao
2019-09-18 10:27 ` Yibo Zhao
2019-09-18 11:23 ` Toke Høiland-Jørgensen
2019-09-18 11:23 ` Toke Høiland-Jørgensen
2019-09-19 9:56 ` Yibo Zhao
2019-09-19 9:56 ` Yibo Zhao
2019-09-19 10:37 ` Toke Høiland-Jørgensen
2019-09-19 10:37 ` Toke Høiland-Jørgensen
2019-09-20 8:29 ` Yibo Zhao
2019-09-20 8:29 ` Yibo Zhao
2019-09-20 9:15 ` Toke Høiland-Jørgensen
2019-09-20 9:15 ` Toke Høiland-Jørgensen
2019-09-21 10:49 ` Yibo Zhao
2019-09-21 10:49 ` Yibo Zhao
2019-09-21 11:27 ` Toke Høiland-Jørgensen
2019-09-21 11:27 ` Toke Høiland-Jørgensen
2019-09-21 11:53 ` Yibo Zhao
2019-09-21 11:53 ` Yibo Zhao
2019-09-21 12:22 ` Yibo Zhao
2019-09-21 12:22 ` Yibo Zhao
2019-09-21 13:02 ` Toke Høiland-Jørgensen
2019-09-21 13:02 ` Toke Høiland-Jørgensen
2019-09-21 13:24 ` Yibo Zhao
2019-09-21 13:24 ` Yibo Zhao
2019-09-21 14:00 ` Toke Høiland-Jørgensen
2019-09-21 14:00 ` Toke Høiland-Jørgensen
2019-09-22 5:19 ` Yibo Zhao
2019-09-22 5:19 ` Yibo Zhao
2019-09-23 10:47 ` Toke Høiland-Jørgensen
2019-09-23 10:47 ` Toke Høiland-Jørgensen
2019-09-23 11:42 ` Kalle Valo
2019-09-23 11:42 ` Kalle Valo
2019-09-23 16:39 ` Toke Høiland-Jørgensen
2019-09-23 16:39 ` Toke Høiland-Jørgensen
2019-09-24 5:27 ` Kalle Valo
2019-09-24 5:27 ` Kalle Valo
2019-09-24 7:23 ` Toke Høiland-Jørgensen
2019-09-24 7:23 ` Toke Høiland-Jørgensen
2019-09-24 2:45 ` Yibo Zhao
2019-09-24 2:45 ` Yibo Zhao
2019-09-24 7:26 ` Toke Høiland-Jørgensen
2019-09-24 7:26 ` Toke Høiland-Jørgensen
2019-09-24 8:31 ` Yibo Zhao
2019-09-24 8:31 ` Yibo Zhao
2019-09-24 8:44 ` Toke Høiland-Jørgensen
2019-09-24 8:44 ` Toke Høiland-Jørgensen
2019-09-16 13:09 ` [PATCH 3/4] mac80211: fix low throughput in push pull mode Yibo Zhao
2019-09-16 13:09 ` Yibo Zhao
2019-09-16 15:27 ` Johannes Berg
2019-09-16 15:27 ` Johannes Berg
2019-09-17 6:36 ` Yibo Zhao
2019-09-17 6:36 ` Yibo Zhao
2019-09-17 6:55 ` Johannes Berg
2019-09-17 6:55 ` Johannes Berg
2019-09-17 21:12 ` Toke Høiland-Jørgensen
2019-09-17 21:12 ` Toke Høiland-Jørgensen
2019-09-18 10:02 ` Yibo Zhao
2019-09-18 10:02 ` Yibo Zhao
2019-09-18 10:16 ` Toke Høiland-Jørgensen
2019-09-18 10:16 ` Toke Høiland-Jørgensen
2019-09-18 10:18 ` Yibo Zhao
2019-09-18 10:18 ` Yibo Zhao
2019-09-16 13:09 ` [PATCH 4/4] mac80211: Sync airtime weight sum with per AC synced sta airtime weight together Yibo Zhao
2019-09-16 13:09 ` Yibo Zhao
2019-09-17 21:24 ` Toke Høiland-Jørgensen
2019-09-17 21:24 ` Toke Høiland-Jørgensen
2019-09-18 10:16 ` Yibo Zhao
2019-09-18 10:16 ` Yibo Zhao
2019-09-16 14:51 ` [PATCH 1/4] mac80211: Switch to a virtual time-based airtime scheduler Toke Høiland-Jørgensen
2019-09-16 14:51 ` Toke Høiland-Jørgensen
2019-09-17 21:31 ` Toke Høiland-Jørgensen [this message]
2019-09-17 21:31 ` Toke Høiland-Jørgensen
2019-09-20 8:37 ` Yibo Zhao
2019-09-20 8:37 ` Yibo Zhao
-- strict thread matches above, loose matches on Subject: below --
2019-12-13 7:19 [PATCH V4 0/4] Enable virtual time-based airtime scheduler support on ath10k Yibo Zhao
2019-12-13 7:19 ` [PATCH 1/4] mac80211: Switch to a virtual time-based airtime scheduler Yibo Zhao
2019-12-13 7:19 ` Yibo Zhao
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=87ftkuip9f.fsf@toke.dk \
--to=toke@redhat.com \
--cc=ath10k@lists.infradead.org \
--cc=linux-wireless@vger.kernel.org \
--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.