From: Dave Taht <dave.taht@gmail.com>
To: Kathleen Nichols <nichols@pollere.com>
Cc: codel@lists.bufferbloat.net
Subject: Re: [Codel] R: Making tests on Tp-link router powered by Openwrt svn
Date: Fri, 21 Dec 2012 18:43:23 +0100 [thread overview]
Message-ID: <CAA93jw77GbAHJcLAw9Pt9k+OuRvZKqCuGy5cH7qoRLfjLO3sDQ@mail.gmail.com> (raw)
In-Reply-To: <50D496FB.5090409@pollere.com>
On Fri, Dec 21, 2012 at 6:06 PM, Kathleen Nichols <nichols@pollere.com> wrote:
> On 12/21/12 2:32 AM, Dave Taht wrote:
>> On Fri, Dec 21, 2012 at 5:19 AM, Alessandro Bolletta
>> <alessandro@mediaspot.net> wrote:
> I don't understand why you are lowering the target explicitly as the use of
> an MTU's worth of packets as the alternate target appeared to work quite
> well at rates down to 64kbps in simulation as well as in changing rates.
> I thought Van explained this nicely in his talk at IETF.
I call this the horizontal standing queue problem, and it's specific
to *fq*_codel (and to some extent, the derivatives so far).
I figure codel, by itself, copes better.
but in fq_codel, each (of 1024 by default) queue is a full blown codel
queue, and thus drops out of drop state when the mtu limit is hit.
Worse, fq_codel always sends a full quantum's worth of packets from
each queue, in order, not mixing them. This is perfectly fine and even
reasonably sane at truly high bandwidths where TSO/GSO and GRO are
being used, but a pretty terrible idea at 100Mbit and below, and
results in moving rapidly back and forth through the timestamps in the
backlog on that queue...
The original fq_codel did no fate-sharing at all, the current one (in
3.6) does.
I produced (several months ago) a couple versions of (e and n)
fq_codel that did better mixing at a higher cpu cost. It was really
hard to see differences. I just found a bug in my nfq_codel patch
today in fact...
Also fiddled a lot with the per queue don't shoot me at MTU limit, in
one version shared amongst all queues, in another, set to the size of
the biggest packet to have hit that queue since the end of the last
drop interval.
So I then decided to really look at this, hard, by working on a set of
benchmarks that made it easy to load up a link with a wide variety of
actual traffic. I'm really happy with the rrul related tests toke has
put together.
I tried to talk about this coherently then, and failed, so once I had
good tests showing various behaviors, I figured I'd talk about it. I
would still prefer not to talk about until I have results I can trust
and finding all the sources of experimental error in the labs setup so
far have eaten most of my time.
I didn't mean to jump the gun on that today, I have a few weeks left
to go, and to collate the analysis coherently with the lab results,
and for all I know some aspect of the lab implementations, the known
BQL issue (bytes rather than packets), or the fact that HTB buffers up
a packet, are all more key to the problem. If it's real.
In the benchmarks I've been doing via toke's implementation of the
rrul test suite, *on a asymmetric link* fq_codel behavior gets more
stable (uses up the largest percentage of bandwidth) if you set target
above the size of the maximum size packet's delivery time at that
bandwidth. Another benchmark that will show bad behavior regardless is
to try pounding a line flat for a while with dozens of full rate
streams.
in your sfq_codel (which I hope to look at next week), do you have a
shared MTU limit for all streams or do you do it on a per stream
basis?
>
> Kathie
> _______________________________________________
> Codel mailing list
> Codel@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/codel
--
Dave Täht
Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
next prev parent reply other threads:[~2012-12-21 17:43 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-20 17:57 [Codel] " Alessandro Bolletta
2012-12-20 18:07 ` Jonathan Morton
2012-12-21 10:19 ` [Codel] R: " Alessandro Bolletta
2012-12-21 10:32 ` Dave Taht
2012-12-21 10:54 ` Dave Taht
2012-12-21 17:06 ` Kathleen Nichols
2012-12-21 17:13 ` Jim Gettys
2012-12-21 19:13 ` Kathleen Nichols
2012-12-21 19:34 ` Jim Gettys
2012-12-21 17:43 ` Dave Taht [this message]
2012-12-21 17:51 ` Kathleen Nichols
[not found] <2lps03vacpqmtehlf4gnq634.1356112034562@email.android.com>
2012-12-21 18:30 ` Jim Gettys
2012-12-21 18:57 ` Dave Taht
2012-12-21 19:29 ` Jim Gettys
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
List information: https://lists.bufferbloat.net/postorius/lists/codel.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAA93jw77GbAHJcLAw9Pt9k+OuRvZKqCuGy5cH7qoRLfjLO3sDQ@mail.gmail.com \
--to=dave.taht@gmail.com \
--cc=codel@lists.bufferbloat.net \
--cc=nichols@pollere.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