From: Pete Heist <pete@heistp.net>
To: Dave Taht <dave.taht@gmail.com>
Cc: Cake List <cake@lists.bufferbloat.net>
Subject: Re: [Cake] cake infinite loop(?) with hfsc on one-armed router
Date: Wed, 9 Jan 2019 07:13:37 +0100 [thread overview]
Message-ID: <86EB08E7-BD75-4F6C-A5CC-6996BF5B2AC3@heistp.net> (raw)
In-Reply-To: <CAA93jw6i70AeB+SDRpyr3sbsoqwDJOoPAFXMhcHknTNjCeHyug@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3192 bytes --]
> On Jan 8, 2019, at 11:33 PM, Dave Taht <dave.taht@gmail.com> wrote:
>
> On Tue, Jan 8, 2019 at 2:01 PM Pete Heist <pete@heistp.net <mailto:pete@heistp.net>> wrote:
>>
>> I should have done that: https://www.heistp.net/downloads/htb_split_gso_patched/ <https://www.heistp.net/downloads/htb_split_gso_patched/>
>>
>> Note that I changed the names in the plots to match the convention of my first email, but it should be clear which is which and I left all plots in. The text output is there too as I sometimes like to open several up in different browser tabs and switch between tabs to compare values.
>>
>> It looks like about 100 usec to me. Throughput also looks consistently about 0.3 Mbit higher (~1.3%) in the split results.
>
> My guess is with ecn on would have the highest latency and the same
> throughput. ?
I see a slight increase in icmp/udp rtt (1.04ms-1.02ms = 20us) and a slight increase in throughput (180.12Mbit - 179.50Mbit = 620kbit).
https://www.heistp.net/downloads/htb_cakep2_ecnon/
https://www.heistp.net/downloads/htb_cakep2_ecnon2/
These results are not five sigma. :)
> Since we started this effort in an era when seconds of added latency
> was common, a mere 100us improvement seems insignificant, except that
> that's a 10% improvement over the present-day baseline, and *that's
> worth it*. ;) This is also a function of the number of flows, kernel
Who knows how many timeouts are avoided in the future, just because of this 100us. :)
> I have noticed that BQL's values can get quite large with cake doing
> the shaping, btw, much larger than they do with htb.
Wonder why that is.
So far it’s harder to use cake’s shaper in the current setup I’m working on, because it appears “better" to have eth0 and eth0.3300 under one link sharing hierarchy for eth0:
tc qdisc add dev eth0 root handle 1: htb default 1
tc class add dev eth0 parent 1: classid 1:1 htb rate $RATE
tc class add dev eth0 parent 1: classid 1:2 htb rate $RATE
tc qdisc add dev eth0 parent 1:1 cake besteffort
tc qdisc add dev eth0 parent 1:2 cake besteffort
tc filter add dev eth0 parent 1:0 prio 1 protocol all \
basic match not "meta(vlan mask 0xfff gt 0x0)" flowid 1:1
tc filter add dev eth0 parent 1:0 prio 2 protocol all \
basic match "meta(vlan mask 0xfff eq `printf \"0x%x\" $VLAN_TAG`)" flowid 1:2
but I can’t do that with cake’s shaper. It’s better in the sense that when you’re out of CPU, latency doesn’t increase suddenly. I _can_ use cake’s shaper by adding cake to the VLAN interface and filtering out vlan traffic from the main interface:
tc qdisc add dev eth0 root handle 1: prio bands 2 priomap 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
tc qdisc add dev eth0 parent 1:1 handle 10: cake besteffort bandwidth $RATE
tc filter add dev eth0 parent 1:0 prio 1 protocol all \
basic match not "meta(vlan mask 0xfff gt 0x0)" flowid 10:1
tc qdisc add dev eth0.3300 root cake besteffort bandwidth $RATE
but when you’re out of CPU, you get starvation and inter-flow latency increases. So so far, hfsc or htb is working better in this case. It might be something to think about for an “ISP Cake”…
[-- Attachment #2: Type: text/html, Size: 12777 bytes --]
next prev parent reply other threads:[~2019-01-09 6:13 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-27 23:30 Pete Heist
2018-12-28 12:58 ` Pete Heist
2018-12-28 21:22 ` Pete Heist
2018-12-28 22:07 ` Jonathan Morton
2018-12-28 22:42 ` Pete Heist
2019-01-04 21:34 ` Toke Høiland-Jørgensen
2019-01-04 22:10 ` Pete Heist
2019-01-04 22:12 ` Pete Heist
2019-01-04 22:34 ` Toke Høiland-Jørgensen
2019-01-05 5:58 ` Pete Heist
2019-01-05 10:06 ` Toke Høiland-Jørgensen
2019-01-05 10:59 ` Pete Heist
2019-01-05 11:06 ` Pete Heist
2019-01-05 11:18 ` Toke Høiland-Jørgensen
2019-01-05 11:26 ` Pete Heist
2019-01-05 11:35 ` Pete Heist
2019-01-05 12:38 ` Toke Høiland-Jørgensen
2019-01-05 12:51 ` Pete Heist
2019-01-05 13:10 ` Toke Høiland-Jørgensen
2019-01-05 13:20 ` Pete Heist
2019-01-05 13:35 ` Toke Høiland-Jørgensen
2019-01-05 15:34 ` Pete Heist
2019-01-05 15:52 ` Jonathan Morton
2019-01-05 16:32 ` Toke Høiland-Jørgensen
2019-01-05 19:27 ` Sebastian Moeller
2019-01-05 20:01 ` Pete Heist
2019-01-05 20:10 ` Toke Høiland-Jørgensen
2019-01-05 20:31 ` Pete Heist
2019-01-05 22:27 ` Toke Høiland-Jørgensen
2019-01-05 22:41 ` Pete Heist
2019-01-06 9:37 ` Pete Heist
2019-01-06 20:56 ` Toke Høiland-Jørgensen
2019-01-07 0:30 ` Pete Heist
2019-01-07 2:11 ` Dave Taht
2019-01-07 11:30 ` Toke Høiland-Jørgensen
2019-01-07 15:07 ` Pete Heist
2019-01-08 20:03 ` Pete Heist
2019-01-08 20:44 ` Dave Taht
2019-01-08 22:01 ` Pete Heist
2019-01-08 22:33 ` Dave Taht
2019-01-09 6:13 ` Pete Heist [this message]
2019-01-08 22:27 ` Toke Høiland-Jørgensen
2019-01-09 5:29 ` Pete Heist
2019-01-09 8:36 ` Toke Høiland-Jørgensen
2019-01-06 20:55 ` Toke Høiland-Jørgensen
2019-01-05 10:44 ` Jonathan Morton
2019-01-05 11:17 ` Toke Høiland-Jørgensen
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=86EB08E7-BD75-4F6C-A5CC-6996BF5B2AC3@heistp.net \
--to=pete@heistp.net \
--cc=cake@lists.bufferbloat.net \
--cc=dave.taht@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