From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Felix Fietkau <nbd@nbd.name>, linux-wireless@vger.kernel.org
Subject: Re: [PATCH 1/6] mt76: use mac80211 txq scheduling
Date: Sun, 17 Mar 2019 22:59:09 +0100 [thread overview]
Message-ID: <87r2b5tb6a.fsf@toke.dk> (raw)
In-Reply-To: <2cc1f1d4-f07e-faa0-ede7-95dd2917a64a@nbd.name>
Felix Fietkau <nbd@nbd.name> writes:
> On 2019-03-17 12:32, Toke Høiland-Jørgensen wrote:
>> Felix Fietkau <nbd@nbd.name> writes:
>>
>>> On 2019-03-16 23:28, Toke Høiland-Jørgensen wrote:
>>>> Felix Fietkau <nbd@nbd.name> writes:
>>>>
>>>>> Performance improvement and preparation for adding airtime fairness
>>>>> support
>>>>
>>>> Great to see this! Do you have a plan for the airtime fairness part?
>>>> I.e., how to get the airtime information?
>>> Not yet. Still need to investigate what kind of information the hardware
>>> can provide. On a first glance it seems rather limited, so we may have
>>> to approximate based on tx status rates/retry and average packet size.
>>
>> OK, cool. A byte-based estimator can also be useful for preventing dumb
>> firmware from buffering too much. The Chromium guys did that for ath10k:
>>
>> https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/588190/13/drivers/net/wireless-4.2/ath/ath10k/mac.c#3826
> Interesting, thanks. I can probably use some ideas from that.
>
>>>> The call to ieee80211_return_txq() is really meant to be unconditional.
>>>> The TXQ will only actually be scheduled if it still has packets queued.
>>>> I know it's slightly more expensive to have the check in mac80211, but
>>>> this is what makes it possible to change the implementation without
>>>> touching the drivers (such as in the RFC patch I sent earlier that
>>>> switches the scheduling algorithm)...
>>> I think this API needs to be extended to allow the driver to specify
>>> that it has buffered packets for a txq. Otherwise there's a small window
>>> where the driver has packets for a txq but mac80211 doesn't, and
>>> mac80211 won't schedule the queue in that case.
>>> I'll send a patch for this soon.
>>
>> Right, makes sense. As long as mac80211 is in control over how it will
>> react to that information (thus allowing to e.g., invert the logic if
>> needed), I have no objections to extending the API... :)I'm thinking of changing the code to make ieee80211_schedule_txq add the
> txq to the list, even if mac80211 does not have any frames buffered for it.
>
> I've looked at ath9k (the only user at the moment), and it seems to call
> the function in that way already: at PS wake or tx status time if it has
> frames in its internal retry queue.
> While it does not match the current documented behavior for that
> function, it nicely fits ath9k's currently unfulfilled expectations ;)
Heh, fair point :)
-Toke
next prev parent reply other threads:[~2019-03-17 22:05 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-16 20:42 [PATCH 1/6] mt76: use mac80211 txq scheduling Felix Fietkau
2019-03-16 20:42 ` [PATCH 2/6] mt76: reduce locking in mt76_dma_tx_cleanup Felix Fietkau
2019-03-16 20:42 ` [PATCH 3/6] mt76: store wcid tx rate info in one u32 reduce locking Felix Fietkau
2019-03-16 20:42 ` [PATCH 4/6] mt76: store software PN/IV in wcid Felix Fietkau
2019-03-18 10:21 ` Stanislaw Gruszka
2019-03-18 10:37 ` Felix Fietkau
2019-03-16 20:42 ` [PATCH 5/6] mt76: move tx tasklet to struct mt76_dev Felix Fietkau
2019-03-16 20:42 ` [PATCH 6/6] mt76: only schedule txqs from the tx tasklet Felix Fietkau
2019-03-16 22:28 ` [PATCH 1/6] mt76: use mac80211 txq scheduling Toke Høiland-Jørgensen
2019-03-17 10:44 ` Felix Fietkau
2019-03-17 11:32 ` Toke Høiland-Jørgensen
2019-03-17 12:32 ` Felix Fietkau
2019-03-17 21:59 ` Toke Høiland-Jørgensen [this message]
2019-03-18 20:08 ` Felix Fietkau
2019-03-18 22:14 ` Toke Høiland-Jørgensen
2019-03-18 22:37 ` Felix Fietkau
2019-03-18 23: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=87r2b5tb6a.fsf@toke.dk \
--to=toke@redhat.com \
--cc=linux-wireless@vger.kernel.org \
--cc=nbd@nbd.name \
/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.