Hi, I recently installed OpenWRT 23.05.2 on it but I'm having worse results in sqm luci compared to the original firmware, I've already tried all the options available in the web interface with fy_codel (it was the least worse with simple.qos), cake with piece of cake... Queue Discipline and Link Layer Adaptation advanced options, I've read the page https://openwrt.org/docs/guide-user/network/traffic-shaping/sqm
So to get to understand your link please:
Post the output of:
ifstatus wan | grep device
cat /etc/config/sqm
tc -s qdisc
Then disable sqm:
/etc/init.d/sqm stop
- run a browser speedtest each of:
2.a) https://speed.cloudflare.com # (let it run to conclusion then post a screen shot of the result page here, ATTENTION this might reveal your IP address and location, which you might or might not want to redact before posting)
2.b) https://www.waveform.com/tools/bufferbloat # (here post a link to the result page, from the "Share your result" box at the bottom of the results)
Then enable sqm again and run and post speedtests:
/etc/init.d/sqm start
- run a browser speedtest each of:
2.a) https://speed.cloudflare.com # (let it run to conclusion then post a screen shot of the result page here, ATTENTION this might reveal your IP address and location, which you might or might not want to redact before posting)
2.b) https://www.waveform.com/tools/bufferbloat # (here post a link to the result page, from the "Share your result" box at the bottom of the results)
Also please tell us about your ISP and link technology.
This is to establish a baseline and understand your issues...
ifstatus wan | grep device
"l3_device": "wan",
"device": "wan",
root@OpenWrt:~# cat /etc/config/sqm
config queue 'eth1'
option enabled '1'
option interface 'wan'
option download '400000'
option upload '200000'
option qdisc 'cake'
option script 'piece_of_cake.qos'
option linklayer 'ethernet'
option debug_logging '0'
option verbosity '5'
option overhead '44'
root@OpenWrt:~# tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc mq 0: dev eth0 root
Sent 3009475849 bytes 4373998 pkt (dropped 0, overlimits 0 requeues 474)
backlog 0b 0p requeues 474
qdisc fq_codel 0: dev eth0 parent :10 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :f limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :e limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :d limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :c limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :b limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :a limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :9 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :8 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 1067313785 bytes 2425782 pkt (dropped 0, overlimits 0 requeues 218)
backlog 0b 0p requeues 218
maxpacket 1518 drop_overlimit 0 new_flow_count 187 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :7 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 4022300 bytes 24054 pkt (dropped 0, overlimits 0 requeues 5)
backlog 0b 0p requeues 5
maxpacket 418 drop_overlimit 0 new_flow_count 3 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :6 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 1937282834 bytes 1920802 pkt (dropped 0, overlimits 0 requeues 245)
backlog 0b 0p requeues 245
maxpacket 1518 drop_overlimit 0 new_flow_count 401 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :5 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 855218 bytes 3344 pkt (dropped 0, overlimits 0 requeues 6)
backlog 0b 0p requeues 6
maxpacket 418 drop_overlimit 0 new_flow_count 3 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :4 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 1712 bytes 16 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :3 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :2 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :1 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev lan4 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev lan3 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev lan2 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc cake 8015: dev wan root refcnt 2 bandwidth 200Mbit besteffort triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms noatm overhead 44
Sent 326052118 bytes 1196995 pkt (dropped 0, overlimits 55127 requeues 0)
backlog 0b 0p requeues 0
memory used: 200192b of 10000000b
capacity estimate: 200Mbit
min/max network layer size: 28 / 1500
min/max overhead-adjusted size: 72 / 1544
average network hdr offset: 14
Tin 0
thresh 200Mbit
target 5ms
interval 100ms
pk_delay 8us
av_delay 1us
sp_delay 1us
backlog 0b
pkts 1196995
bytes 326052118
way_inds 21724
way_miss 40289
way_cols 0
drops 0
marks 0
ack_drop 0
sp_flows 2
bk_flows 1
un_flows 0
max_len 65102
quantum 1514
qdisc ingress ffff: dev wan parent ffff:fff1 ----------------
Sent 5746222859 bytes 4753285 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-lan root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev phy1-ap0 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev phy0-ap0 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc cake 8016: dev ifb4wan root refcnt 2 bandwidth 400Mbit besteffort triple-isolate nonat wash no-ack-filter split-gso rtt 100ms noatm overhead 44
Sent 5837540108 bytes 4753067 pkt (dropped 218, overlimits 7137220 requeues 0)
backlog 0b 0p requeues 0
memory used: 4686019b of 15140Kb
capacity estimate: 400Mbit
min/max network layer size: 46 / 1500
min/max overhead-adjusted size: 90 / 1544
average network hdr offset: 14
Tin 0
thresh 400Mbit
target 5ms
interval 100ms
pk_delay 299us
av_delay 212us
sp_delay 2us
backlog 0b
pkts 4753285
bytes 5837865225
way_inds 68153
way_miss 26367
way_cols 0
drops 218
marks 0
ack_drop 0
sp_flows 2
bk_flows 1
un_flows 0
max_len 68130
quantum 1514
Just make sure you "sandwich" your text between two rows of backtick characters ` (which themselves will be invisible in the preview) looking in something like this in the editor:
```
Your Pasted Text as preformatted text with fixed width font
1
1111 (note with fixed-width fonts the numbers are right-aligned)
```
but looking like this in the rendered forum:
Your Pasted Text as preformatted text with fixed width font
1
1111 (note with fixed-width fonts the numbers are right-aligned)
OR
Please use the "Preformatted text </>
" button for logs, scripts, configs and general console output.
Please edit your post accordingly. Thank you!
This will make it much nicer to read console output that often is expecting a fixed width font for proper alignment across lines.
Here is how this looks for your data:
ifstatus wan | grep device
"l3_device": "wan",
"device": "wan",
root@OpenWrt:~# cat /etc/config/sqm
root@OpenWrt:~# cat /etc/config/sqm
config queue 'eth1'
option enabled '1'
option interface 'wan'
option download '400000'
option upload '200000'
option qdisc 'cake'
option script 'piece_of_cake.qos'
option linklayer 'ethernet'
option debug_logging '0'
option verbosity '5'
option overhead '44'
root@OpenWrt:~# tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc mq 0: dev eth0 root
Sent 3009475849 bytes 4373998 pkt (dropped 0, overlimits 0 requeues 474)
backlog 0b 0p requeues 474
qdisc fq_codel 0: dev eth0 parent :10 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :f limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :e limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :d limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :c limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :b limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :a limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :9 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :8 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 1067313785 bytes 2425782 pkt (dropped 0, overlimits 0 requeues 218)
backlog 0b 0p requeues 218
maxpacket 1518 drop_overlimit 0 new_flow_count 187 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :7 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 4022300 bytes 24054 pkt (dropped 0, overlimits 0 requeues 5)
backlog 0b 0p requeues 5
maxpacket 418 drop_overlimit 0 new_flow_count 3 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :6 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 1937282834 bytes 1920802 pkt (dropped 0, overlimits 0 requeues 245)
backlog 0b 0p requeues 245
maxpacket 1518 drop_overlimit 0 new_flow_count 401 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :5 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 855218 bytes 3344 pkt (dropped 0, overlimits 0 requeues 6)
backlog 0b 0p requeues 6
maxpacket 418 drop_overlimit 0 new_flow_count 3 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :4 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 1712 bytes 16 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :3 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :2 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :1 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev lan4 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev lan3 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev lan2 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc cake 8015: dev wan root refcnt 2 bandwidth 200Mbit besteffort triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms noatm overhead 44
Sent 326052118 bytes 1196995 pkt (dropped 0, overlimits 55127 requeues 0)
backlog 0b 0p requeues 0
memory used: 200192b of 10000000b
capacity estimate: 200Mbit
min/max network layer size: 28 / 1500
min/max overhead-adjusted size: 72 / 1544
average network hdr offset: 14
Tin 0
thresh 200Mbit
target 5ms
interval 100ms
pk_delay 8us
av_delay 1us
sp_delay 1us
backlog 0b
pkts 1196995
bytes 326052118
way_inds 21724
way_miss 40289
way_cols 0
drops 0
marks 0
ack_drop 0
sp_flows 2
bk_flows 1
un_flows 0
max_len 65102
quantum 1514
qdisc ingress ffff: dev wan parent ffff:fff1 ----------------
Sent 5746222859 bytes 4753285 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-lan root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev phy1-ap0 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev phy0-ap0 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc cake 8016: dev ifb4wan root refcnt 2 bandwidth 400Mbit besteffort triple-isolate nonat wash no-ack-filter split-gso rtt 100ms noatm overhead 44
Sent 5837540108 bytes 4753067 pkt (dropped 218, overlimits 7137220 requeues 0)
backlog 0b 0p requeues 0
memory used: 4686019b of 15140Kb
capacity estimate: 400Mbit
min/max network layer size: 46 / 1500
min/max overhead-adjusted size: 90 / 1544
average network hdr offset: 14
Tin 0
thresh 400Mbit
target 5ms
interval 100ms
pk_delay 299us
av_delay 212us
sp_delay 2us
backlog 0b
pkts 4753285
bytes 5837865225
way_inds 68153
way_miss 26367
way_cols 0
drops 218
marks 0
ack_drop 0
sp_flows 2
bk_flows 1
un_flows 0
max_len 68130
quantum 1514
Quick note, that redmi ax6000 uses a quad core arm A53 CPU. This is a low power/efficiency core from 2012 that for efficiency reasons is implemented as in-order... I am sorry to report that this core is a bit fickle*...
I guess also should look at the output of:
cat /proc/interrupts
cat /proc/softirqs
*) Don't get me wrong as a core there is nothing wrong with the a53 there is however something wrong of plugging that into a SoC for modern routers...
https://www.waveform.com/tools/bufferbloat?test-id=b7d30928-60b5-4964-9c3d-2951e4f0a122 (no sqm)
https://www.waveform.com/tools/bufferbloat?test-id=5a7789b1-a2c2-4635-931a-52e129bdd35c (with sqm)
https://ibb.co/Nt3LyY0 (no sqm)
https://ibb.co/5k2CKT4 (with sqm)
V.tal GPON FTTH 400/200MB Ont Nokia bridged.
root@OpenWrt:~# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
11: 3430727 1585414 2941480 2219491 GICv3 30 Level arch_timer
14: 0 0 0 0 GICv3 142 Level wdt_bark
25: 0 0 0 0 mt-eint 9 Edge keys
26: 0 0 0 0 mt-eint 10 Edge keys
82: 34 0 0 0 mt-eint 66 Level mt7530
117: 0 0 0 0 GICv3 148 Level 10320000.crypto
118: 0 0 0 0 GICv3 149 Level 10320000.crypto
119: 0 0 0 0 GICv3 150 Level 10320000.crypto
120: 0 0 0 0 GICv3 151 Level 10320000.crypto
121: 12 0 0 0 GICv3 155 Level ttyS0
122: 46931 0 0 0 GICv3 172 Level 1100a000.spi
123: 287813 0 0 0 GICv3 173 Level 1100b000.spi
130: 3956101 0 0 0 GICv3 229 Level 15100000.ethernet
131: 3856027 0 0 0 GICv3 230 Level 15100000.ethernet
133: 9094448 0 0 0 GICv3 245 Level mt7915e
137: 0 5 0 0 mt7530 1 Edge mt7530-0:01
138: 0 21 0 0 mt7530 2 Edge mt7530-0:02
139: 0 3 0 0 mt7530 3 Edge mt7530-0:03
140: 0 5 0 0 mt7530 4 Edge mt7530-0:04
IPI0: 3963 32564 8361 5280 Rescheduling interrupts
IPI1: 539105 10189852 5202691 5270992 Function call interrupts
IPI2: 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 CPU stop (for crash dump) interrupts
IPI4: 0 0 0 0 Timer broadcast interrupts
IPI5: 0 0 0 0 IRQ work interrupts
IPI6: 0 0 0 0 CPU wake-up interrupts
Err: 0
root@OpenWrt:~# cat /proc/softirqs
CPU0 CPU1 CPU2 CPU3
HI: 0 0 0 0
TIMER: 275370 403876 975307 580968
NET_TX: 2718238 841037 1640466 1313717
NET_RX: 2662897 628519 811468 559342
BLOCK: 0 0 0 0
IRQ_POLL: 0 0 0 0
TASKLET: 16326612 2877512 3284200 1623404
SCHED: 554717 601152 1210235 804181
HRTIMER: 0 0 0 0
RCU: 298893 258514 389488 305233
Ok, edited. I already put the speedtests above.
Not to doubt you or anything but I'm confused. Are you sure you are looking at the right thing? The MT7986A got a FCC in 2021 Q3 according to: http://en.techinfodepot.shoutwiki.com/wiki/MediaTek
It also supports DDR4. DDR4 didn't come out till 2014. I mean I guess they will somehow backported DDR4 compatibility in a 2012 chip but that seems really strange. The reason I bring it up is this same soc has been known to do Cake at over 3 Gbps in the Asus TUF-AX6000.
Both ethernet interrupts sit on CPU0, so if all shapers should end up there as well that core will likely get overloaded...
And here also more than a fair share of NET_TX, NET_RX and TASKLET end up on CPU0
well possible that the problem is CPU overload (together with quite high shaper rates 400/200 Mbps is quite some work for a traffic shaper...)
I am talking about Arm's core design, according to wikipedia the design of the A53 (of which the MT7986A sports 4) is from 2012. I am not saying the MT7986A is as old an design, but one of its core (pun intended) components is a bit long in the tooth...
Impressive if true, however I have my reservations... about this. Caveat, above 1 Gbps cake defaults to not split GSO/GRO style meta packets which can reduce the packet rate considerably depending on how mant meta packets are in play.
By clicking the 7th icon from the left, you can upload images to the forum, far more convenient than having to look at uploads somewhere else...
But these do not actually look bad, in both cases latencies came a bit down. Now if we can make sure your CPUs do not get overloaded this might work out pretty nicely.
I agree, but I know that the router can handle more than that, with QoS in the original firmware it was 0 in both at maximum speed.
I understand, but I have no idea how to change this, I'm just starting with openwrt.
If it's something very complicated, I might settle for going back to the original firmware if I still can.
searching I found the irqbalance package, installed and activated it, there was a minimal improvement, I don't know how to proceed to configure it in the best way.
cat /etc/config/irqbalance
config irqbalance 'irqbalance'
option enabled '1'
# Level at which irqbalance partitions cache domains.
# Default is 2 (L2$).
#option deepestcache '2'
# The default value is 10 seconds
#option interval '10'
# Specify excluded cpulist
#option banned_cpulist '0'
# List of IRQ's to ignore
#list banirq '36'
#list banirq '69'
Changed ethernet adapter here...
cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
11: 1186363 408459 207554 1219719 GICv3 30 Level arch_timer
14: 0 0 0 0 GICv3 142 Level wdt_bark
25: 0 0 0 0 mt-eint 9 Edge keys
26: 0 0 0 0 mt-eint 10 Edge keys
82: 26 0 0 0 mt-eint 66 Level mt7530
117: 0 0 0 0 GICv3 148 Level 10320000.crypto
118: 0 0 0 0 GICv3 149 Level 10320000.crypto
119: 0 0 0 0 GICv3 150 Level 10320000.crypto
120: 0 0 0 0 GICv3 151 Level 10320000.crypto
121: 12 0 0 0 GICv3 155 Level ttyS0
122: 46629 0 0 0 GICv3 172 Level 1100a000.spi
123: 31986 0 0 0 GICv3 173 Level 1100b000.spi
130: 156 1744578 0 0 GICv3 229 Level 15100000.ethernet
**131: 60 0 0 1010152 GICv3 230 Level 15100000.ethernet**
133: 725234 0 0 0 GICv3 245 Level mt7915e
137: 0 4 0 0 mt7530 1 Edge mt7530-0:01
138: 0 16 0 0 mt7530 2 Edge mt7530-0:02
139: 0 3 0 0 mt7530 3 Edge mt7530-0:03
140: 0 3 0 0 mt7530 4 Edge mt7530-0:04
IPI0: 2628 3706 3839 5379 Rescheduling interrupts
IPI1: 609911 468180 888354 756302 Function call interrupts
IPI2: 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 CPU stop (for crash dump) interrupts
IPI4: 0 0 0 0 Timer broadcast interrupts
IPI5: 0 0 0 0 IRQ work interrupts
But here looks like the same:
cat /proc/softirqs
CPU0 CPU1 CPU2 CPU3
HI: 0 0 0 0
TIMER: 29947 44400 93299 38965
NET_TX: 1018886 269259 61005 1096610
NET_RX: 528689 112234 20410 417882
BLOCK: 0 0 0 0
IRQ_POLL: 0 0 0 0
TASKLET: 1679034 487803 147400 577468
SCHED: 75653 86685 113822 56199
HRTIMER: 0 0 0 0
RCU: 40343 47263 45285 26925
This is already the first step, the next step is to enable packet steering (which allows moving the cake/qdisc processing to other CPUs than CPU0).
That is somewhat out of reach, in the default configuration, cake/fq_codel allow up to 5ms of standing queue before they engage, so as a consequence one needs to expect a latency increase in the order of 5-10ms under load... one can configure a tighter number here but at the cost that longer RTT flows will get less throughput...
Also keep in mind that modern browsers are not a high quality measurement environment and hence the results need to be taken as indicators only and not as precise data. E.g. in your Waveform test in the download latency plot we see two samples with ~320ms delay, these are almost guaranteed to be caused by your browser and likely do not reflect what happened over the network.
I don't know how to do this, I give up. Thanks.
As I said, I am on and off and not always on-line.
I think to enable packet-steering you should add the following line:
option packet_steering '1'
to the config globals 'globals'
section in /etc/config/network
.
Then to test whether it worked copy and paste the following into a ssh session on onto the router and then copy and paste the output:
for file in /sys/class/net/*
do
echo $file RX rps_cpus
cat $file"/queues/rx-0/rps_cpus"
echo $file TX xps_cpus
cat $file"/queues/tx-0/xps_cpus"
done
to see what stuck...
root@OpenWrt:~# for file in /sys/class/net/*
> do
> echo $file RX rps_cpus
> cat $file"/queues/rx-0/rps_cpus"
> echo $file TX xps_cpus
> cat $file"/queues/tx-0/xps_cpus"
> done
/sys/class/net/br-lan RX rps_cpus
0
/sys/class/net/br-lan TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/eth0 RX rps_cpus
f
/sys/class/net/eth0 TX xps_cpus
f
/sys/class/net/ifb4wan RX rps_cpus
0
/sys/class/net/ifb4wan TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/lan2 RX rps_cpus
0
/sys/class/net/lan2 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/lan3 RX rps_cpus
0
/sys/class/net/lan3 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/lan4 RX rps_cpus
0
/sys/class/net/lan4 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/lo RX rps_cpus
0
/sys/class/net/lo TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/phy0-ap0 RX rps_cpus
f
/sys/class/net/phy0-ap0 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/phy1-ap0 RX rps_cpus
f
/sys/class/net/phy1-ap0 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/wan RX rps_cpus
0
/sys/class/net/wan TX xps_cpus
cat: read error: No such file or directory
Okay, I think 0 means packet steering is disabled...
Did you edit /etc/config/network?
If yes, please try to reboot the router (or try /etc.init.d/network restart
EDIT: don't, this is completely wrong, see below) and then rerun the above command...
EDIT: /etc/hotplug.d/net/20-smp-packet-steering
seems to be the right thing here, sorry for bringing
Yes, i edited and Reboot in web interface, put It in network globals,
I reboot again.
I find this in other topic, same case here:
root@OpenWrt:~# /etc/init.d/packet_steering restart
sh: write error: No such file or directory
sh: write error: No such file or directory
root@OpenWrt:~# wifi down
root@OpenWrt:~# /etc/init.d/packet_steering restart
root@OpenWrt:~# wifi up
I'm looking for information about packet steering not working. Kernel problem?
root@OpenWrt:~# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd25:808f:6518::/48'
option packet_steering '1'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
config device
option name 'wan'
option macaddr '24:cf:24:28:18:d7'
config interface 'wan'
option device 'wan'
option proto 'dhcp'
config interface 'wan6'
option device 'wan'
option proto 'dhcpv6'
root@OpenWrt:~# for file in /sys/class/net/*
> do
> echo $file RX rps_cpus
> cat $file"/queues/rx-0/rps_cpus"
> echo $file TX xps_cpus
> cat $file"/queues/tx-0/xps_cpus"
> done
/sys/class/net/br-lan RX rps_cpus
0
/sys/class/net/br-lan TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/eth0 RX rps_cpus
f
/sys/class/net/eth0 TX xps_cpus
f
/sys/class/net/ifb4wan RX rps_cpus
0
/sys/class/net/ifb4wan TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/lan2 RX rps_cpus
0
/sys/class/net/lan2 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/lan3 RX rps_cpus
0
/sys/class/net/lan3 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/lan4 RX rps_cpus
0
/sys/class/net/lan4 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/lo RX rps_cpus
0
/sys/class/net/lo TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/phy0-ap0 RX rps_cpus
f
/sys/class/net/phy0-ap0 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/phy1-ap0 RX rps_cpus
f
/sys/class/net/phy1-ap0 TX xps_cpus
cat: read error: No such file or directory
/sys/class/net/wan RX rps_cpus
0
/sys/class/net/wan TX xps_cpus
cat: read error: No such file or directory