From: Bob Copeland <me@bobcopeland.com>
To: Derek Smithies <derek@indranet.co.nz>
Cc: Bj?rn Smedman <bjorn.smedman@venatech.se>,
Felix Fietkau <nbd@openwrt.org>,
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: Thu, 4 Mar 2010 09:12:57 -0500 [thread overview]
Message-ID: <20100304141256.GA1985@hash.localnet> (raw)
In-Reply-To: <alpine.DEB.2.00.1003031006390.10063@kauri>
On Wed, Mar 03, 2010 at 10:55:26AM +1300, Derek Smithies wrote:
> PID got it wrong - implicit in PID is the assumption that the rates can
> be ordered in terms of more successful / less successful - and the
> ordering follows the speed (faster speed=less successful).
>
> Since very slow rates are subject to interference loss (imagine there is
> a 60hz transmitter out there) packets that take a long time to transmit
> are far more likely to be shot down, stepping down a rate is going to
> increase the loss rate.
PID has more problems than just that -- it has lots of oscillation even
when the rate is relatively stable. See this chart which I
made using mac80211 hwsim and simulated loss (this was after I fixed
the problem in commit e850f68b8f):
http://bobcopeland.com/srcs/tcp_perf.pdf
My simulation involved no collisions and just reduced the SNR over
time. AARF in this case is an algorithm from academia, which is
susceptible to collision related-loss as you describe above.
In this example, it performed badly because of the latency inherent
between packet queuing and status reporting.
Minstrel definitely performs better in real life.
That said, I looked at the current minstrel code and have a few
puzzlements:
- As I understand it, minstrel is not supposed to delay packets more
than 24 ms to avoid TCP resends. However, if I understand the code,
this is done by limiting each MRR segment to 6 ms, which doesn't seem
right to me. The retries in the second MRR slot will have to wait
a backoff before being used, right?
- Often, two slots in the MRR array use the same rate (e.g. slots 1 and 3).
Maybe we should pick a 'next lower' rate for the lower slot in such a case?
If we are really in a place where the originally attempted rate isn't
workable, this might slightly boost throughput.
The large spikes at rate transition boundaries aren't quite so deep with
fewer retries.
--
Bob Copeland %% www.bobcopeland.com
next prev parent reply other threads:[~2010-03-04 14: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
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 [this message]
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=20100304141256.GA1985@hash.localnet \
--to=me@bobcopeland.com \
--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 \
--cc=nbd@openwrt.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).