Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: Jonathan Morton <chromatix99@gmail.com>
Cc: cake@lists.bufferbloat.net
Subject: Re: [Cake] peeling at sub-1ms
Date: Mon, 25 May 2015 13:09:39 -0700	[thread overview]
Message-ID: <CAA93jw44DZhLEp_7kCVNFgTD7_EzLYPgM4tEKUVjj-vody+Nvw@mail.gmail.com> (raw)
In-Reply-To: <67EE7961-8978-4403-AC1A-1157F008795D@gmail.com>

On Sun, May 24, 2015 at 9:56 PM, Jonathan Morton <chromatix99@gmail.com> wrote:
>
>> On 23 May, 2015, at 20:47, Dave Taht <dave.taht@gmail.com> wrote:
>
>> I think I would be happier if we peeled at 250usec rather than 1ms. At
>> 110Mbit that is 2 packets, but at a gig quite a lot.
>>
>> (selfishly, that is the speed I am running at while watching
>> dslreports misbehave)
>>
>> The second problem is that the default peeling behavior somehow should
>> work while at line rate, whether the rate be 10mbit or a gbit.
>>
>> another option is when we know we have lots of flows, to peel more.
>
> Since it doesn’t seem to have completely blown up in your face, I can assume that I was on basically the right track, and do a bit more refinement on the peeling code.  There probably is some room for efficiency improvements.
>

I said the heck with it and peeled superpackets apart universally in
my most recent tests of cake. The original (1960s) definition of a
packet was 1000 bits. Everything since then has fudged the issue.
packets occupy mass, transistors, etc.

A core trade-off I am observing is that having one queue per flow
impacts overall delay - I see fq_codel achieving a 15ms induced delay
typically (with 100 flows extant and 4 measurement flows), cake 30,
pie about 40ms... on a 100/10 link on these crazy bidir tests.

Now the goal of course is to fill the pipe - and another goal (which
is becoming more apparent to me) is to provide an SRTT estimate to the
tcps that is real. We are giving a consistent over-estimate of the
baseline RTT to the tcps... the cwnds stay flat... the single data
point the "fast/slow queue" distinction gives is not enough ( I keep
thinking we can seriously improve a tcp here, and also certainly
improve the ecn behavior of a tcp if it used the minimum observed rtt
to base it's rate reductions on).

I also re-instated the 300 quantum for speeds up to 400mbit instead of
the previous cutoff of 40mbit. I don't like how much extra cpu that
uses, but it led to much saner ack clocking overall at these extreme
loads.

The above also kills the fast/slow distinction also.

Sigh. I really need a fora for writing these down, with graphs, and
turning the results around more quickly to share. and a testbed
running. and....

sigh.

Do you want me to push branches for this sort of exercises?

> If I do some pre-computation at shaper configuration time, I think I can efficiently handle the cases you mention.

Well, one thought in bobbie (dynamically dropping the rate) is pretty
computationally expensive in cake and hits several paths when
changed on the command line that it needent (tc cake change dev eth2
bandwidth 50mbit). If we were to start exploring a
gargoyle-router-project-esq self tuning option those paths should get
tightened.

I am definately seeing heisenbugs with watch tc -s qdisc qdisc show on
a 2 sec interval. Want to throw drops/marks to userspace....

>
>  - Jonathan Morton
>



-- 
Dave Täht
Open Networking needs **Open Source Hardware**

https://plus.google.com/u/0/+EricRaymond/posts/JqxCe2pFr67

      reply	other threads:[~2015-05-25 20:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-23 17:46 Dave Taht
2015-05-23 17:47 ` Dave Taht
2015-05-25  4:56   ` Jonathan Morton
2015-05-25 20:09     ` Dave Taht [this message]

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/cake.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAA93jw44DZhLEp_7kCVNFgTD7_EzLYPgM4tEKUVjj-vody+Nvw@mail.gmail.com \
    --to=dave.taht@gmail.com \
    --cc=cake@lists.bufferbloat.net \
    --cc=chromatix99@gmail.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