CoDel AQM discussions
 help / color / mirror / Atom feed
From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: dave seddon <dave.seddon.ca@gmail.com>,
	Frantisek Borsik <frantisek.borsik@gmail.com>,
	codel@lists.bufferbloat.net, bloat <bloat@lists.bufferbloat.net>,
	Jeremy Austin via Rpm <rpm@lists.bufferbloat.net>,
	Make-Wifi-fast <make-wifi-fast@lists.bufferbloat.net>,
	ryan@rkhtech.org
Subject: [Codel] Re: [Cake] Re: [Bloat] Re: CAKE-MQ merged to OpenWrt 25.12 today (February 15)
Date: Tue, 17 Feb 2026 17:32:46 +0100	[thread overview]
Message-ID: <878qcrpbyp.fsf@toke.dk> (raw)
In-Reply-To: <20260217063410.47b59cd8@phoenix.local>

Stephen Hemminger <stephen@networkplumber.org> writes:

> On Tue, 17 Feb 2026 14:23:52 +0100
> Toke Høiland-Jørgensen via Cake <cake@lists.bufferbloat.net> wrote:
>
>> dave seddon <dave.seddon.ca@gmail.com> writes:
>> 
>> > === Pre-flight Complete ===
>> > Running 6 test points
>> >
>> > [1/6] qdisc=fq_codel flows=1 tool=iperf2
>> >   Switching qdisc to fq_codel...
>> >   Throughput: 9.41 Gbps
>> > [2/6] qdisc=fq_codel flows=10 tool=iperf2
>> >   Throughput: 9.43 Gbps
>> > [3/6] qdisc=cake flows=1 tool=iperf2
>> >   Switching qdisc to cake...
>> >   Throughput: 6.93 Gbps
>> > [4/6] qdisc=cake flows=10 tool=iperf2
>> >   Throughput: 4.37 Gbps                                 <---- cake
>> > [5/6] qdisc=mq-cake flows=1 tool=iperf2
>> >   Switching qdisc to mq-cake...
>> >   Throughput: 7.17 Gbps
>> > [6/6] qdisc=mq-cake flows=10 tool=iperf2
>> >   Throughput: 9.44 Gbps                                   <-----
>> > mq-cake ... Actually, that's interesting.  higher than fq_codel  
>> 
>> Are you running fq_codel as the root qdisc? Because in that case you're
>> running through the single qdisc lock, which could explain the
>> difference. Try running separate fq_codel instances beneath an 'mq'
>> qdisc as the root.
>> 
>> Also, if you're not setting a shaping rate, cake_mq is basically the
>> same as just installing an mq qdisc at the root and having separate cake
>> instances beneath that. So to test the multi-core shaper algorithm
>> you'll need to set a rate ('bandwidth' parameter).
>> 
>
> This is what the OpenWrt SQM scripts seem to favor.
> I probably need to tune the adaption overhead
>
> # tc qdisc show dev wan
> qdisc htb 1: root refcnt 2 r2q 10 default 0x12 direct_packets_stat 0 direct_qlen 1000
> qdisc fq_codel 120: parent 1:12 limit 1001p flows 1024 quantum 300 target 5ms interval 100ms memory_limit 4Mb drop_batch 64 
> qdisc fq_codel 130: parent 1:13 limit 1001p flows 1024 quantum 300 target 5ms interval 100ms memory_limit 4Mb drop_batch 64 
> qdisc fq_codel 110: parent 1:11 limit 1001p flows 1024 quantum 300
> target 5ms interval 100ms memory_limit 4Mb drop_batch 64

If you set 'script' to 'layer_cake.qos' or 'piece_of_cake.qos' in the
config, you'll get a CAKE setup instead. On OpenWrt 25.12 (still in -rc)
this will automatically select cake_mq where the system supports it.

> It is dumb that in US it is standard to offer 1G down and 10M up!

Yes, very. Don't think it's actually possible to use that 1G link with
TCP without ACK thinning of some kind. The full-MTU-to-ACK ratio is ~47
(1500/32; this is assuming one 64-byte ACK for every two 1500-byte
packets), so you can only use ~470 Mbps downstream with 10M up. CAKE's
ACK thinning should help here, but you need to turn that on explicitly
by adding 'ack-filter' to eqdisc_opts in the config.

-Toke

  reply	other threads:[~2026-02-17 16:32 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-15 17:42 [Codel] CAKE-MQ merged to OpenWrt 25.12 today (February 15) Frantisek Borsik
2026-02-17  6:10 ` [Codel] Re: [Cake] " dave seddon
2026-02-17  6:41   ` [Codel] Re: [Bloat] " Stephen Hemminger
2026-02-17 13:23   ` Toke Høiland-Jørgensen
2026-02-17 14:34     ` [Codel] Re: [Cake] Re: [Bloat] " Stephen Hemminger
2026-02-17 16:32       ` Toke Høiland-Jørgensen [this message]
2026-02-17 17:15         ` David Collier-Brown
2026-02-20 15:59         ` dave seddon

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=878qcrpbyp.fsf@toke.dk \
    --to=toke@toke.dk \
    --cc=bloat@lists.bufferbloat.net \
    --cc=codel@lists.bufferbloat.net \
    --cc=dave.seddon.ca@gmail.com \
    --cc=frantisek.borsik@gmail.com \
    --cc=make-wifi-fast@lists.bufferbloat.net \
    --cc=rpm@lists.bufferbloat.net \
    --cc=ryan@rkhtech.org \
    --cc=stephen@networkplumber.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