SQM/QoS can saturate the CPU/is this expected or can the code be improved?

I have set my scaling_governor to performance, so the CPU always runs at maximum frequency.

I can't test max speed with cake as my internet isn't that fast. Sub 200 does seem low though. For discussion sake, Kong's r7800 19.07 change log says:

-another network throughput optimization e.g. cake can now shape up to 600Mbps (depends on type of wan)

Can you provide some details? My downstream will be upgraded to 600 Mbps shortly but I believe my R7800 with SQM is limiting it currently to about 200 Mbps. Thanks.

I'm successfully using an nbg6817 (so basically the same device) on a 400/200 MBit/s ftth connection (~420/~220 effectively), without SQM (and without software flow-offloading) it can deal with that easily - there is some healthy headroom left, but not that much (600 MBit/s might just work, but not much more). The situation with SQM will be considerably different, but I haven't seen a need for that yet.

That's all the details I can provide. I just quoted directly from kong's changelog...

1 Like

I’ve been able to get fq_codel / simplest to 500mbps flat.

I’ve searched through Kong’s site and haven’t found an explanation or proof of how he is able to squeeze out more - especially with cake (I’m getting a max of ~upper 200’s mbps).

With the NSS cores you can get a little more squeeze potentially.

You can get fq_codel / simplest to 500mbps? I'm getting 350mbps fq_codel + simplest.qos

This is the best I could get under ideal conditions:

600000 for download speed, 34000 for upload, link layer adaption is ethernet + 22 per packet overhead. No advanced settings, wifi turned off, running hynman’s master build (I have two APs, this is testing my r7800 main router dedicated to wired only).

fq_codel + simplest_tbf.qos + software offloading enabled + performance CPU governor:

My connection has been upgraded to 600 Mbps downstream. I cannot reach it with fq_codel + simplest.qos or simplest_tbf.qos. It seems to max out around 430 Mbps.

Your screenshot is broken. What are you results? Also, I understood that software offloading was incompatible with SQM. Is that not the case? Have tried comparing results with and without it?

Software offloading seems to help and yields better results.

500mbps was just to see how fast the cpu goes. Turning down the SQM to about 470000 yielded better latency and was more consistent.

I am getting some variability with my setup, but I cannot see a difference with software offloading and sqm enabled.

WITH software offloading, downstream:
520 Mbps (speedtest.net)
490 Mbps (speedtest.net)
518 Mbps (dslreports)
320 Mbps (dslreports)
515 Mbps (dslreports)

WITHOUT software offloading, downstream:
482 Mbps (speedtest.net)
510 Mbps (speedtest.net)
527 Mbps (dslreports)
392 Mbps (dslreports)
350 Mbps (dslreports)

Statistically, those two sets are not significantly different (ANOVA) even excluding the outlier value of 320 in the first set. The stddev of the first set is tighter (excluding the outlier) so I could argue with offloading gives a more consistent result.

1 Like

what does this file do exactly?


I had to delete this config in order for my manual irq assignments to take hold.

No idea... as an update, I am finding that the NSS code @quarky @Ansuel (and others?) made available to the community preforms as-good-as SQM with the endpoint of bufferbloat numbers yet allows for faster download speeds on WiFi devices.

See here for key steps to build the NSS code (assuming you have a compatible device). See here for setup of fq_codel on it. You do not use the LuCI package. That thread is pretty large.

That's really impressive! If there's one thing I've learned about linux, road blocks don't exist for very long.