From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Yibo Zhao <yiboz@codeaurora.org>, linux-wireless@vger.kernel.org
Cc: ath10k@lists.infradead.org, Yibo Zhao <yiboz@codeaurora.org>
Subject: Re: [PATCH V3 3/4] mac80211: fix low throughput in multi-clients situation
Date: Mon, 23 Sep 2019 12:55:05 +0200 [thread overview]
Message-ID: <87impj5lkm.fsf@toke.dk> (raw)
In-Reply-To: <1569223201-1490-4-git-send-email-yiboz@codeaurora.org>
Yibo Zhao <yiboz@codeaurora.org> writes:
> Not long after the start of multi-clients test, not a single station is
> an eligible candidate for transmission since global virtual time(g_vt) is
> smaller than the virtual airtime(s_vt) of all the stations. As a result,
> the Tx has been blocked and throughput is quite low.
>
> This may mainly due to sync mechanism and accumulative deviation from the
> devision calculation of g_vt.
>
> For example:
> Suppose we have 50 clients in first round.
> Round 1:
> STA weight Tx_time_round wt_sum s_vt g_vt valid_for_next_Tx
> 1 256 2048 12800 2048 2000 N
> 2 256 2048 2048 N
> . . . . .
> . . . . .
> . . . . .
> 50 256 2048 2048 N
>
> After this round, all the stations are not valid for next transmission due to
> accumulative deviation.
>
> And if we add a new #51,
> STA weight Tx_time_round wt_sum s_vt g_vt valid_for_next_Tx
> 1 256 2048 13056 2048 2020 N
> 2 256 2048 2048 N
> . . . .
> . . . .
> . . . .
> 50 256 2048 2048 N
> 51 256 1024 2524 N
That's better :)
> Sync is done by:
> max(g_vt of last round - grace period, s_vt)
> and s_vt of #51 = max(2000 - 500, 0) + 1024 = 2524, and it is more than the final
> g_vt of this round.
>
> After this round, no more station is valid for transmission.
>
> The real situation can be more complicate, above is one of the extremely case.
>
> To avoid this situation to occur, the new proposal is:
>
> - Increase the airtime grace period a little more to reduce the
> unexpected sync
>
> - If global virtual time is less than the virtual airtime of any station,
> sync it to the airtime of first station in the red-black tree
>
> - Round the division result
I can see why we need the second part (basically, this happens because I
forgot to add a check for "no eligible stations" in may_transmit(), like
the one in next_txq()). And rounding up the division result doesn't
hurt, I guess. But why does it help to change the grace period if we're
doing all the other stuff?
-Toke
next prev parent reply other threads:[~2019-09-23 10:55 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-23 7:19 [PATCH V3 0/4] Enable virtual time-based airtime scheduler support on ath10k Yibo Zhao
2019-09-23 7:19 ` [PATCH V3 1/4] mac80211: Switch to a virtual time-based airtime scheduler Yibo Zhao
2019-09-23 7:19 ` [PATCH V3 2/4] mac80211: defer txqs removal from rbtree Yibo Zhao
2019-09-23 10:56 ` Toke Høiland-Jørgensen
2019-09-24 2:55 ` Yibo Zhao
2019-09-23 7:20 ` [PATCH V3 3/4] mac80211: fix low throughput in multi-clients situation Yibo Zhao
2019-09-23 10:55 ` Toke Høiland-Jørgensen [this message]
2019-09-24 8:22 ` Yibo Zhao
2019-09-24 8:48 ` Toke Høiland-Jørgensen
2019-09-24 8:58 ` Yibo Zhao
2019-09-23 7:20 ` [PATCH V3 4/4] mac80211: Sync airtime weight sum with per AC synced sta airtime weight together Yibo Zhao
2019-09-23 11:00 ` Toke Høiland-Jørgensen
2019-09-24 3:19 ` Yibo Zhao
2019-09-24 7:27 ` Toke Høiland-Jørgensen
2019-10-01 10:19 ` [PATCH V3 0/4] Enable virtual time-based airtime scheduler support on ath10k Johannes Berg
2019-10-01 10:59 ` Yibo Zhao
2019-10-01 11:05 ` 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=87impj5lkm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).