Cake-mq - backport of multi-core capable CAKE implementation to 25.12 branch

Just to bring awareness of local folks that multi-core capable CAKE implementation was merged to upcoming 25.12 release branch (from Linux 7.0): kernel patch and iproute2 patch.

I wonder if that will be exposed to general users in UI... and what benchmarks mt7621 users could expect now :rofl:

20 Likes

IMHO should be default on in layer cake.

3 Likes

Is there a way to build it at this point? I don’t see any config symbols for it, like CONFIG_NET_SCH_CAKE exists for ā€œoldā€ CAKE.

2 Likes

Haven't tried it myself. I'll wait for RC5. Very little information except original publication.

1 Like

See tools/testing/selftests/tc-testing/tc-tests/qdiscs/cake_mq.json in original patch. There are some clues of how it should be configured. But I'm not sure whether it is exposed for use or not. On the hand why would anyone add it to release if it was not available for use?

1 Like

There’s no kmod built for it yet, so maybe this isn’t going to be visible yet, but just laying the groundwork for later.

Maybe @tohojo or @rsalvaterra can comment?

2 Likes

It’s part of the same kmod (sch_cake.ko). You use it by substituting cake_mq for cake in the tc qdisc command…

7 Likes

What’s the tc qdisc command to use? I’m not seeing cake_mq in available_discs, only cake (latest main build 33027).

1 Like

tc qdisc replace dev XX root cake_mq

Looking forward to testing this on my Filogic 830 device too. Exciting times seeing a Linux 7.0 backport especially for SQM

Not to highjack the thread but here is another kernel 7.0 optimization that could have potential for OpenWrt:

3 Likes

Is mq cake can ne applied on lan too ? With sqm

Sqm eth1 and br lan

Thanks

We have not added support in sqm-scripts yet, no...

2 Likes

Is that timestamping function optimization relevant for us mere mortals with 1/2.5 Gbit NICs?

1 Like

Toke HĆøiland-JĆørgensen toke@toke.dk writes:

We have not added support in sqm-scripts yet, no...

Here's a PR to the sqm-scripts repository adding cake_mq support:

Testing very welcome!

11 Likes

Would you recommend to use cake_mq for the 2-core mt7622?

Would you recommend to use cake_mq for the 2-core mt7622?

If you are shaping at a rate that cake has trouble keeping up with, sure. Although cake_mq also requires the NIC to have multiple hardware queues, so it may not be supported everywhere.

If you are currently shaping at a rate that works with single-queue cake, there is no benefit to switching to the mq variant.

2 Likes

Not available in hardware. But you can run ethtool -l eth_something and make sure I'm correct.

Looks like it has 64 hardware queues

HW QoS: Seamlessly co-work with HW NAT engine, SFQ w/ 1k queues 64 hardware queues to guarantee the min/max bandwidth of each flow

HNAT/HQoS: HQoS 64 queues, SFQ 1K queues HNAT 3.5Gbps forwarding (IPv4, IPv6 routing, DS-Lite, 6RD, 6to4)

MediaTek MT7622 - WikiDevi

Those are different queues, I believe. And, BTW, hardware QoS on mt7622 is not supported by Linux kernel drivers.

Thanks, that’s a bummer then.. Btw what would we expect to see with ethtool -l if mq is supported?