From: Alan Jenkins <alan.christopher.jenkins@gmail.com>
To: Sebastian Moeller <moeller0@gmx.de>
Cc: "cake@lists.bufferbloat.net" <cake@lists.bufferbloat.net>
Subject: Re: [Cake] cake target corner cases?
Date: Mon, 2 Nov 2015 16:20:43 +0000 [thread overview]
Message-ID: <CANmMgnGorLpYE+B8ucMEOQgdFqvn31_A35RN93JvZiB3+ef0kg@mail.gmail.com> (raw)
In-Reply-To: <2D22BEFF-B6B6-4348-B83E-3AB76F933BDF@gmx.de>
On 02/11/2015, Sebastian Moeller <moeller0@gmx.de> wrote:
> Hi Alan,
>
> On Nov 2, 2015, at 01:20 , Alan Jenkins <alan.christopher.jenkins@gmail.com>
> wrote:
>
>> I thought SQM works fine with mtu * 1.0. But cake has been like this
>> since at least April, and I didn't notice an extra 7ms when I tried
>> it. Confusing.
>
> Well, sqm-scripts does take an MTU of 1540 bytes, which is less than ideal
> because for ATM encapsulation the on wire size is actually 32 or 32 * 53, so
> the worst case should be 33*53 = 1749 bytes, but in reality the actual limit
> itself only needs to be approximately right.. That said, I guess I fixed up
> sqm-scripts right now (by making target large enough for one 1749 byte
> packet, I would be delighted if you could go measure whether this changes
> things, before increasing auto-target to 1.5 worst case on-wire-packets, and
> also scaling interval so that target <= 0.1*interval stays true)...
Ok. Actually I wouldn't have measured +7ms because I wasn't testing
cake flowblind, aka codel. (And I was looking at ping under load, not
tc -s qdisc, or the tcp rtt's).
The increased target doesn't increase my bandwidth. Actually I'm
failing to measure any changes at all, even for mtu*1.5. I'm sure
there's a real effect on buffering, if I had a less noisy way to
measure it :(. I couldn't work out exactly what you wanted testing;
if there's something more specific I could probably spend more time on
it.
I agree with the reasoning for 1749 bytes. If you think mtu*1.5 is a
good idea for SQM, I can't follow the logic, but it wouldn't bother me
for fq_codel. I'm not really worried about cake, because I don't
understand it. cake flowblind with mtu*1.5 hard-coded sounds less
good, but I don't have any reason to use it in that mode :).
>> b->cparams.interval = max(rtt_est_ns +
>> b->cparams.target - ns_target,
>> b->cparams.target * 8);
>
> I sort of cheated, I knew this was in the code, but I wanted to highlight
> that we need a better description of what cake does to not confuse future
> users, sorry for that.
I won't complain, I'm probably the one being obstructive here.
>> Maybe this keeps the target/interval ratio from going too far over the
>> recommended 10%. Though that's not what CoDel says to do.
>>
>> In the CoDel draft you just don't drop below 1 MTU. You don't adjust
>> target for the rate. There's no suggestion to increase interval
>> either. It makes sense that long transmission times add to the
>> expected rtt (SQM does this too).
>
> I know, I believe that K. Nichols recommended to increase interval, and I
> opted for the simplest additive increase (as effectively the expected RTTs
> increase by the amount of transfer time, and for asymmetric links we can
> ignore the faster direction mostly).
> Looking at the rationale in the codel RFC I now believe that scaling would
> be the right thing… in theory smaller target better preserves responsiveness
> at a slightly higher bandwidth sacrifice, and with slow links I believe
> responsiveness is more important; but then I wonder what is more responsive,
> a higher target ratio with a (smaller) estimated reaction time (in first
> approximation interval gives the time we allow sender and receiver to react
> to our signaling) or the theoretical better target ratio with an
> artificially increased interval. I guess that needs data...
Data always good. AIUI the ratio is about how low you can set target,
before the bandwidth reduction becomes painful.
I can imagine expected rtt increases e.g. in Tin 4, when it's
de-prioritised because of exceeding the bandwidth threshold. I don't
see why it would increase by over 400ms, in the 1Mbit/s case you
showed.
Regards
Alan
next prev parent reply other threads:[~2015-11-02 16:20 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-01 18:07 Sebastian Moeller
2015-11-01 20:58 ` Alan Jenkins
2015-11-01 21:52 ` Kevin Darbyshire-Bryant
2015-11-02 0:20 ` Alan Jenkins
2015-11-02 11:17 ` Sebastian Moeller
2015-11-02 16:20 ` Alan Jenkins [this message]
2015-11-02 18:49 ` Sebastian Moeller
2015-11-02 20:38 ` Alan Jenkins
2015-11-02 11:23 ` Sebastian Moeller
2015-11-02 11:29 ` Sebastian Moeller
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=CANmMgnGorLpYE+B8ucMEOQgdFqvn31_A35RN93JvZiB3+ef0kg@mail.gmail.com \
--to=alan.christopher.jenkins@gmail.com \
--cc=cake@lists.bufferbloat.net \
--cc=moeller0@gmx.de \
/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