From: Felix Fietkau <nbd@openwrt.org>
To: "Björn Smedman" <bjorn.smedman@venatech.se>
Cc: linux-wireless <linux-wireless@vger.kernel.org>,
Derek Smithies <derek@indranet.co.nz>,
Benoit PAPILLAULT <benoit.papillault@free.fr>,
"Luis R. Rodriguez" <lrodriguez@atheros.com>,
Christian Lamparter <chunkeey@googlemail.com>,
Johannes Berg <johannes@sipsolutions.net>
Subject: Re: [RFC/RFT] minstrel_ht: new rate control module for 802.11n
Date: Tue, 02 Mar 2010 17:14:35 +0100 [thread overview]
Message-ID: <4B8D396B.5040007@openwrt.org> (raw)
In-Reply-To: <133e8d7e1003020747w348dbee0g60a25a86393972d7@mail.gmail.com>
On 2010-03-02 4:47 PM, Björn Smedman wrote:
> 2010/3/2 Felix Fietkau <nbd@openwrt.org>:
>> [snip] also the hardware
>> doesn't even provide enough information to do any kind of precise
>> calculation on airtime utilization by tx attempts. For instance, I don't
>> get any information on how many frames in an A-MPDU were successfully
>> transmitted on each retransmission attempt.
>
> You mean the hardware interprets the block-ack and keeps retrying the
> un-acked frames? I thought it stopped as soon as it got a block-ack to
> let software sort out the acked and un-acked frames and handle the
> "partial" A-MPDU retry.
Not sure, actually. I just looked at the ath9k tx path again, and it
seems that you're right. However it looks like it's not sending rate
control updates until it's done with the software retry, so that's
probably the reason why I wasn't able to make it more precise yet.
>> Software retries are being taken into account on some level, because a
>> software retry is simply going to be part of the next A-MPDU, which will
>> get accounted for in the rate control code.
>
> If my guess on block-ack implementation is correctly there is still
> have a major uncertainty: if the first frame in the A-MPDU is
> transferred correctly but every other frame in the AMPDU fails (and
> has to be retransmitted in other A-MPDUs) you run the risk of counting
> that as a success (and of course wise-versa)...
Yeah, I definitely need to deal with that.
>> This early version will probably not make a fully optimal tradeoff
>> between retransmission probability and raw throughput, but that can
>> probably be tweaked over time, simply by adjusting the internal
>> throughput metric calculation to something that gets close in practice
>> at least most of the time.
>
> I agree this new code is a big step forward and the aim here (with
> this patch) should of course not be a fully optimal solution. But
> shouldn't we try to at least set up a roadmap to remove as much as
> possible of these fundamental flaws / uncertainties?
Sure. I think the way to make this more precise is to ensure that the tx
path sends rate control updates even before it's done with the software
retry. The resulting feedback can then properly be accounted for by
comparing ampdu_len against ampdu_ack_len in the status info, thus
getting accurate statistics on subframe failures.
Still leaves open the question of how this is supposed to be handled for
other drivers, but I guess that can be dealt with later.
> The reason I'm so interested in this subject is I've tried to tweak
> the ath9k rate control to behave reasonably for me. This has taken a
> lot of time and the result is rather poor. Also, these tweaks are not
> general enough to even be contributed back as patches. My feeling is
> that the reason it is so difficult to get a rate control algorithm to
> work for all use-cases is that the underlying model is just plain
> wrong. Radio environments are very varied and complex. Add to that all
> the other variability, such as ANI dynamically adjusting radio chain
> parameters and it's very very difficult to know what is "incorrect but
> good enough".
Interesting.
- Felix
next prev parent reply other threads:[~2010-03-02 16:14 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-01 22:05 [RFC/RFT] minstrel_ht: new rate control module for 802.11n Felix Fietkau
2010-03-01 22:38 ` Derek Smithies
2010-03-01 22:58 ` Felix Fietkau
2010-03-01 23:04 ` Derek Smithies
2010-03-02 12:19 ` Björn Smedman
2010-03-02 14:51 ` Felix Fietkau
2010-03-02 15:47 ` Björn Smedman
2010-03-02 16:14 ` Felix Fietkau [this message]
2010-06-23 16:36 ` Björn Smedman
2010-06-23 17:07 ` Felix Fietkau
2010-06-23 18:47 ` Björn Smedman
2010-06-23 19:27 ` Felix Fietkau
2010-06-23 23:56 ` Björn Smedman
2010-06-28 0:01 ` Björn Smedman
2010-06-28 0:12 ` Felix Fietkau
2010-06-28 10:20 ` Björn Smedman
2010-06-28 10:27 ` Felix Fietkau
2010-03-02 21:55 ` Derek Smithies
2010-03-04 14:12 ` Bob Copeland
2010-03-04 16:40 ` Björn Smedman
2010-03-04 20:11 ` Derek Smithies
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=4B8D396B.5040007@openwrt.org \
--to=nbd@openwrt.org \
--cc=benoit.papillault@free.fr \
--cc=bjorn.smedman@venatech.se \
--cc=chunkeey@googlemail.com \
--cc=derek@indranet.co.nz \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=lrodriguez@atheros.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 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).