linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Felix Fietkau <nbd@openwrt.org>
To: Derek Smithies <derek@indranet.co.nz>
Cc: linux-wireless <linux-wireless@vger.kernel.org>,
	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: Mon, 01 Mar 2010 23:58:13 +0100	[thread overview]
Message-ID: <4B8C4685.8020202@openwrt.org> (raw)
In-Reply-To: <alpine.DEB.2.00.1003021122550.14059@kauri.acheron.indranet.co.nz>

On 2010-03-01 11:38 PM, Derek Smithies wrote:
> Hi,
>   Great work on getting this far - it was a huge undertaking.
> 
>   Ok, before diving into the code, can we take a quick moment to think on 
> this. I wonder if you can answer the following questions:
> 
> a)Minstrel worked hard at using information that is good and reliable: -
>     which is the record of what rates worked, and what rates failed.
>   Minstrel avoids using things like RSSI (which is not reliable)
Yes, I still rely purely on tx status feedback, no RSSI voodoo.

> b)You have stated in previous emails that with 802.11n there are too many
>   rates for minstrels random sampling technique.
> 
> What is the approach taken in 802.11n & minstrel? I remember some comment 
> about dividing the 802.11n rate set up into groups, and then minstrel does 
> its thing within the rates of each group. - Do I have the idea here?
The previous comments were based on faulty tx status feedback because of
an ath9k issue that I resolved in a previous patch. The current
implementation still does random sampling, with one exception: each
sampling attempt goes to a different MCS group.
Other than that, I split up the MCS rates into groups mainly because
it's easier to deal with and allows me to calculate raw transmit
durations at compile time.

I did add some small special cases though. For instance if the code
detects that the current transmit rate is failing really quickly on a
multi-stream rate, it falls back to the max_tp_rate of a single-stream
group, while leaving around enough feedback for EWMA.
This reduces the strength of the throughput drop when I disconnect one
antenna (which kills off pretty much all of the dual-stream rates
immediately).

> Where have you tested 802.11n & minstrel?
Only at home. I just finished ironing out most of the important bugs
today, so this hasn't seen any significant long-term testing yet.

> Does 802.11n&minstrel pass the basic test
>    a) put two nodes on the desk - rate is high
>    b) move one of the nodes (or remove antenna) - rate should drop
>    c) move nodes back to the configuration of a)
>              -rate should go high again
Yes, this was my primary test. I also did some tests with removing both
antennas and moving the laptop away and back again.

I also did quite a few tests switching back and forth between
minstrel_ht and the ath9k rate control to compare them as accurately as
possible. In HT40, rate adaptation with minstrel is usually a little
slower (only a minor difference here, probably caused by the much larger
search space), but it's able to deal with sources of interference (e.g.
Bluetooth) a lot better.
It also reacts much faster to problems with spatial multiplexing, and
seems to get a better average throughput in HT20 in my tests.

> Does 802.11n&minstrel work well with time?
> In other words, is the throughput 10 hours later the same as at the start 
> of the test?
If I force it to single-stream mode, then it seems to be just as
reliable at sticking to a specific rate as the legacy implementation.

With dual-stream rates it's hard to tell, because the reliability of
rates varies quickly, even if the positions is fixed. I do not see any
*significant* variations in throughput though.

- Felix

  reply	other threads:[~2010-03-01 22:58 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 [this message]
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
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=4B8C4685.8020202@openwrt.org \
    --to=nbd@openwrt.org \
    --cc=benoit.papillault@free.fr \
    --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).