From: Felix Fietkau <nbd@openwrt.org>
To: Mohammed Shafi <shafi.wireless@gmail.com>
Cc: Adrian Chadd <adrian@freebsd.org>,
Bob Copeland <me@bobcopeland.com>,
"Luis R. Rodriguez" <rodrigue@qca.qualcomm.com>,
Paul Stewart <pstew@google.com>,
Sujith Manoharan <sujith@msujith.org>,
linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [RFC] ath9k: remove ath9k_rate_control
Date: Fri, 01 Mar 2013 12:31:03 +0100 [thread overview]
Message-ID: <51309177.2040106@openwrt.org> (raw)
In-Reply-To: <CAD2nsn3pEOHJ+Cmd+sRm32jObU09cv+wae+3hsFtRzN5WLyFtg@mail.gmail.com>
On 2013-03-01 12:18 PM, Mohammed Shafi wrote:
> Hi Felix,
>
> On Fri, Mar 1, 2013 at 3:59 PM, Felix Fietkau <nbd@openwrt.org> wrote:
>> On 2013-03-01 11:22 AM, Adrian Chadd wrote:
>>> On 1 March 2013 02:14, Felix Fietkau <nbd@openwrt.org> wrote:
>>>
>>>>> Having access to schedule which peer and how much to send to each peer
>>>>> would be nice. Stuff like "peer X only can have up to x ms in this WME
>>>>> class this round", so you don't have a busy, close peer monopolising
>>>>> the air. It also means you can start doing smart things with far away
>>>>> peers who retransmit a lot - they're likely tying up a lot of airtime.
>>>>>
>>>>> None of this is new. It's just, you know, new to open source. :-)
>>>
>>>> In my opinion this doesn't really belong into a rate control module.
>>>> There should be a tx scheduling API to take care of this. Before I
>>>> implement something like this, I plan on exposing all per-station driver
>>>> queues to mac80211. This is necessary for a few other things anyway,
>>>> e.g. unifying software aggregation logic and fixing its buffer management.
>>>
>>> Sure, but then some more clever tricks end up being difficult to
>>> implement. For example, knowing if a client is tying up too much
>>> airtime at the given rate and whether to back them off for a bit. Or
>>> to use smaller aggregation limits for certain clients because your'e
>>> trying to be "fairer" when trying to keep latency low. That kind of
>>> thing.
>>>
>>> I think "rate control" should likely be expanded to "tx scheduling" as
>>> a whole, rather than sitting as a separate thing that just selects the
>>> rate for a node who has already been chosen to transmit.
>> Even with client airtime use, I still don't see how tx scheduling and
>> rate control belong together. In my opinion, the rate selection should
>> not be based on client airtime usage or the current load, as it can
>> optimize for throughput/airtime ratio without it.
>>
>
> Algorithm folks and Engineers had spent considerable time on ath9k rate control.
> Wouldn't be a great idea to remove it completely, We can have it optional.
> With lot of throughput tests ran over internally and with the test
> team verification,
> it wouldn't be fair to throw it away.
Regardless of how much time was spent tuning it, it still has a really
bad design, bad implementation and a number of practical issues.
It seems to be tuned entirely for artificial benchmarks in clean air. It
also starts with a very high rate without having proven that it works.
I don't think anybody is going to fix all of these issues, and even if
somebody does, it would invalidate pretty much all of the tuning/testing
that went into this code.
- Felix
next prev parent reply other threads:[~2013-03-01 11:31 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-08 13:13 [RFC] ath9k: remove ath9k_rate_control Felix Fietkau
2013-02-08 13:30 ` Sujith Manoharan
2013-02-08 14:04 ` Felix Fietkau
2013-02-08 14:06 ` Sujith Manoharan
2013-02-08 14:08 ` Sujith Manoharan
2013-02-08 14:16 ` Felix Fietkau
2013-02-08 16:38 ` Paul Stewart
2013-02-08 16:53 ` Felix Fietkau
2013-02-27 19:20 ` Luis R. Rodriguez
2013-02-28 2:21 ` Adrian Chadd
2013-02-28 3:24 ` Felix Fietkau
2013-02-28 3:54 ` Sujith Manoharan
2013-02-28 4:32 ` Felix Fietkau
2013-02-28 5:08 ` Sujith Manoharan
2013-03-01 14:31 ` Sujith Manoharan
2013-03-01 15:35 ` Ben Greear
2013-03-01 21:23 ` Adrian Chadd
2013-03-01 21:28 ` Adrian Chadd
2013-03-02 2:19 ` Sujith Manoharan
2013-03-02 5:40 ` Adrian Chadd
2013-03-02 8:26 ` Georgiewskiy Yuriy
2013-03-02 20:23 ` Felix Fietkau
2013-03-03 3:58 ` Sujith Manoharan
2013-02-28 11:47 ` Bob Copeland
2013-02-28 13:09 ` Felix Fietkau
2013-02-28 18:53 ` Adrian Chadd
2013-02-28 19:07 ` Felix Fietkau
2013-03-01 1:23 ` Sujith Manoharan
2013-03-01 10:09 ` Felix Fietkau
2013-03-01 3:53 ` Adrian Chadd
2013-03-01 10:14 ` Felix Fietkau
2013-03-01 10:22 ` Adrian Chadd
2013-03-01 10:29 ` Felix Fietkau
2013-03-01 11:18 ` Mohammed Shafi
2013-03-01 11:31 ` Felix Fietkau [this message]
2013-03-01 12:32 ` Mohammed Shafi
2013-03-01 13:05 ` Felix Fietkau
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=51309177.2040106@openwrt.org \
--to=nbd@openwrt.org \
--cc=adrian@freebsd.org \
--cc=linux-wireless@vger.kernel.org \
--cc=me@bobcopeland.com \
--cc=pstew@google.com \
--cc=rodrigue@qca.qualcomm.com \
--cc=shafi.wireless@gmail.com \
--cc=sujith@msujith.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).