[Bloat] Re: [Cake] Re: Re: CAKE-MQ merged to OpenWrt 25.12 today (February 15)

Jonas Köppeler
2026-02-17T16:55:25Z

On 2/17/26 5:32 PM, Toke Høiland-Jørgensen via Bloat wrote:
> 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.
Actually on that note: I was playing around with the latest OpenWrt
(25.12 snapshot from today). I can successfully install cake_mq
manually. However, the sqm script does not install cake_mq (to be more
specific using the web interface luci-sqm-script). I opened a github
issue providing more details:
https://github.com/tohojo/sqm-scripts/issues/182

Jonas