All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rajkumar Manoharan <rmanohar@codeaurora.org>
To: "Toke Høiland-Jørgensen" <toke@redhat.com>
Cc: make-wifi-fast@lists.bufferbloat.net,
	linux-wireless@vger.kernel.org, Felix Fietkau <nbd@nbd.name>,
	Kan Yan <kyan@google.com>,
	linux-wireless-owner@vger.kernel.org
Subject: Re: [RFC/RFT] mac80211: Switch to a virtual time-based airtime scheduler
Date: Wed, 06 Mar 2019 15:09:58 -0800	[thread overview]
Message-ID: <69d22b9e3ea08a81fea8b8742cb697c5@codeaurora.org> (raw)
In-Reply-To: <87va0x1g0j.fsf@toke.dk>

On 2019-03-05 07:45, Toke Høiland-Jørgensen wrote:
> Toke Høiland-Jørgensen <toke@redhat.com> writes:
> 
>> 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>
>> ---
>> This is basically the idea I mentioned earlier for a different way to
>> handle the airtime scheduling.
>> 
>> I've tested it on ath9k, where it achieves the same fairness and
>> weighing properties as the old scheduler. It would be good if you 
>> could
>> test it on your ath10k setup, Rajkumar; and all of you please comment 
>> on
>> whether you agree that this is better from an API point of view.
> 
> So no one has any comments on this? :)
> 
Toke,

This is kind of design change. ;) FMU w.r.t ath10k, earlier deficit 
adjustment
and list rotation happens at next_txq and may_transmit. Now it seems the 
rbtree
adjustment happens upon new txq insertion through wake_txq and whenever 
driver
reports airtime by register_airtime. Am I right?

We are using pretty old kernel (3.14, 4.4). It definitely needs backport 
of rbtree.
Have you used *Wrt image or validation on x86?

-Rajkumar



  reply	other threads:[~2019-03-06 23:10 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-15 17:05 [RFC/RFT] mac80211: Switch to a virtual time-based airtime scheduler Toke Høiland-Jørgensen
2019-02-15 19:44 ` [Make-wifi-fast] " Dave Taht
2019-03-05 15:45 ` Toke Høiland-Jørgensen
2019-03-06 23:09   ` Rajkumar Manoharan [this message]
2019-03-07  9:46     ` Toke Høiland-Jørgensen
2019-03-07 14:27 ` Felix Fietkau
2019-03-08 11:05   ` Toke Høiland-Jørgensen
2019-03-08 18:16     ` Felix Fietkau
2019-03-08 19:06       ` Toke Høiland-Jørgensen
2019-04-04  4:41 ` Yibo Zhao
2019-04-04  4:43   ` Yibo Zhao
2019-04-04  5:00 ` Yibo Zhao
2019-04-04  8:31   ` Toke Høiland-Jørgensen
2019-04-04  8:36     ` [Make-wifi-fast] " Dave Taht
2019-04-04  8:50       ` Toke Høiland-Jørgensen
2019-04-09 13:25     ` Yibo Zhao
2019-04-09 20:41       ` Toke Høiland-Jørgensen
2019-04-10  6:35         ` Yibo Zhao
2019-04-10 10:40           ` Toke Høiland-Jørgensen
2019-04-11  3:12             ` Yibo Zhao
2019-04-11 11:24               ` Toke Høiland-Jørgensen
2019-04-12  6:34                 ` Yibo Zhao
2019-04-19 15:05                 ` Yibo Zhao
2019-04-20 21:15                   ` Toke Høiland-Jørgensen
2019-04-30  9:45                     ` Yibo Zhao
2019-04-30 10:39                       ` 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=69d22b9e3ea08a81fea8b8742cb697c5@codeaurora.org \
    --to=rmanohar@codeaurora.org \
    --cc=kyan@google.com \
    --cc=linux-wireless-owner@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    --cc=nbd@nbd.name \
    --cc=toke@redhat.com \
    /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.