All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 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.