On 04.07.2021 00:16, Rafał Miłecki wrote:
I decided to start my adventure with mt76. I bought the cheapest router I could find: Xiaomi Mi Router 4C and installed OpenWrt 21.02-rc3 on it.
I found & bought another cheap router with mt76 supported WiFi: Netgear R6220 with MT7621ST (SoC) + MT7603EN (WiFi) + MT7612EN (WiFi). I even found some possitive comments on mt76 support for MT7603 but it appears it's the same story. I decided to focus on 2 GHz (MT7603) for now. *** First I run vendor's firmware and iperf test for 2 hours. Speeds were verying between 35 Mb/s and 60 Mb/s but it didn't fail even once: [ 3] 7195.0-7196.0 sec 4.12 MBytes 34.6 Mbits/sec [ 3] 7196.0-7197.0 sec 2.54 MBytes 21.3 Mbits/sec [ 3] 7197.0-7198.0 sec 5.50 MBytes 46.1 Mbits/sec [ 3] 7198.0-7199.0 sec 5.62 MBytes 47.2 Mbits/sec [ 3] 7199.0-7200.0 sec 5.50 MBytes 46.1 Mbits/sec [ 3] 0.0-7200.3 sec 37.2 GBytes 44.4 Mbits/sec *** Then I installed OpenWrt 19.07.7 with mt76 from February 2021. It failed me almost immediately: [ 3] 0.0- 1.0 sec 6.50 MBytes 54.5 Mbits/sec [ 3] 1.0- 2.0 sec 5.38 MBytes 45.1 Mbits/sec [ 3] 2.0- 3.0 sec 5.88 MBytes 49.3 Mbits/sec [ 3] 3.0- 4.0 sec 5.12 MBytes 43.0 Mbits/sec [ 3] 4.0- 5.0 sec 6.38 MBytes 53.5 Mbits/sec [ 3] 5.0- 6.0 sec 5.88 MBytes 49.3 Mbits/sec [ 3] 6.0- 7.0 sec 6.50 MBytes 54.5 Mbits/sec [ 3] 7.0- 8.0 sec 5.88 MBytes 49.3 Mbits/sec [ 3] 8.0- 9.0 sec 6.88 MBytes 57.7 Mbits/sec [ 3] 9.0-10.0 sec 6.12 MBytes 51.4 Mbits/sec [ 3] 10.0-11.0 sec 6.50 MBytes 54.5 Mbits/sec [ 3] 11.0-12.0 sec 5.75 MBytes 48.2 Mbits/sec [ 3] 12.0-13.0 sec 4.38 MBytes 36.7 Mbits/sec [ 3] 13.0-14.0 sec 1.98 MBytes 16.6 Mbits/sec [ 3] 14.0-15.0 sec 1.80 MBytes 15.1 Mbits/sec [ 3] 15.0-16.0 sec 1.74 MBytes 14.6 Mbits/sec [ 3] 16.0-17.0 sec 509 KBytes 4.17 Mbits/sec [ 3] 17.0-18.0 sec 509 KBytes 4.17 Mbits/sec [ 3] 18.0-19.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 19.0-20.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 20.0-21.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 21.0-22.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 22.0-23.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 23.0-24.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 24.0-25.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 25.0-26.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 26.0-27.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 27.0-28.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 28.0-29.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 29.0-30.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 30.0-31.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 31.0-32.0 sec 2.38 MBytes 19.9 Mbits/sec [ 3] 32.0-33.0 sec 5.62 MBytes 47.2 Mbits/sec [ 3] 33.0-34.0 sec 6.75 MBytes 56.6 Mbits/sec [ 3] 34.0-35.0 sec 5.88 MBytes 49.3 Mbits/sec The most recent OpenWrt with mt76 from June 2021 was no better. *** Then I focused on iw & station info from MT7603 perspective. That is where I noticed something interesting. With idle wireless (no real traffic at all) I could see "rx bitrate" reported by MT7603 for my STA to drop down to 6 Mbit/s regularly. > while [ 1 ]; do date; iw dev wlan0 station dump | grep bitrate; sleep 1; done Fri Jul 9 16:40:42 UTC 2021 tx bitrate: 72.2 MBit/s MCS 7 short GI rx bitrate: 72.2 MBit/s MCS 7 short GI Fri Jul 9 16:40:43 UTC 2021 tx bitrate: 72.2 MBit/s MCS 7 short GI rx bitrate: 72.2 MBit/s MCS 7 short GI Fri Jul 9 16:40:44 UTC 2021 tx bitrate: 72.2 MBit/s MCS 7 short GI rx bitrate: 72.2 MBit/s MCS 7 short GI Fri Jul 9 16:40:45 UTC 2021 tx bitrate: 72.2 MBit/s MCS 7 short GI rx bitrate: 6.0 MBit/s Fri Jul 9 16:40:46 UTC 2021 tx bitrate: 39.0 MBit/s MCS 4 rx bitrate: 6.0 MBit/s Fri Jul 9 16:40:47 UTC 2021 tx bitrate: 26.0 MBit/s MCS 3 rx bitrate: 6.0 MBit/s Fri Jul 9 16:40:48 UTC 2021 tx bitrate: 72.2 MBit/s MCS 7 short GI rx bitrate: 72.2 MBit/s MCS 7 short GI Fri Jul 9 16:40:49 UTC 2021 tx bitrate: 72.2 MBit/s MCS 7 short GI rx bitrate: 72.2 MBit/s MCS 7 short GI Fri Jul 9 16:40:50 UTC 2021 tx bitrate: 72.2 MBit/s MCS 7 short GI rx bitrate: 72.2 MBit/s MCS 7 short GI Then I started iperf and noticed that iperf slows down exactly when "iw" reports lower (6 Mbit/s) "rx rate". I decided to run iperf with "-b 20M" and got something like: [ 3] 465.0-466.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 466.0-467.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 467.0-468.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 468.0-469.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 469.0-470.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 470.0-471.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 471.0-472.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 472.0-473.0 sec 1.08 MBytes 9.05 Mbits/sec ← "iw" on MT7603 reported lower "rx bitrate" at that moment [ 3] 473.0-474.0 sec 1.55 MBytes 13.0 Mbits/sec [ 3] 474.0-475.0 sec 1.37 MBytes 11.5 Mbits/sec [ 3] 475.0-476.0 sec 1.18 MBytes 9.90 Mbits/sec [ 3] 476.0-477.0 sec 954 KBytes 7.82 Mbits/sec [ 3] 477.0-478.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 478.0-479.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 479.0-480.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 480.0-481.0 sec 0.00 Bytes 0.00 bits/sec [ 3] 481.0-482.0 sec 1.06 MBytes 8.86 Mbits/sec [ 3] 482.0-483.0 sec 255 KBytes 2.09 Mbits/sec [ 3] 483.0-484.0 sec 954 KBytes 7.82 Mbits/sec [ 3] 484.0-485.0 sec 1.93 MBytes 16.2 Mbits/sec [ 3] 485.0-486.0 sec 3.36 MBytes 28.2 Mbits/sec [ 3] 486.0-487.0 sec 6.96 MBytes 58.4 Mbits/sec [ 3] 487.0-488.0 sec 6.90 MBytes 57.9 Mbits/sec [ 3] 488.0-489.0 sec 6.96 MBytes 58.4 Mbits/sec [ 3] 489.0-490.0 sec 5.78 MBytes 48.5 Mbits/sec [ 3] 490.0-491.0 sec 5.07 MBytes 42.5 Mbits/sec [ 3] 491.0-492.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 492.0-493.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 493.0-494.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 494.0-495.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 495.0-496.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 496.0-497.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 497.0-498.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 498.0-499.0 sec 2.38 MBytes 20.0 Mbits/sec [ 3] 499.0-500.0 sec 2.38 MBytes 20.0 Mbits/sec For few times iperf speed recovered after slow down (as in above log) but after few successes it has failed and slow down ended up in a totally stalled traffic. Then I decided to run iperf with "-b 10M" and got a kind of success: [ 3] 16590.0-16591.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16591.0-16592.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16592.0-16593.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16593.0-16594.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16594.0-16595.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16595.0-16596.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16596.0-16597.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16597.0-16598.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16598.0-16599.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16599.0-16600.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 16600.0-16601.0 sec 1.19 MBytes 10.0 Mbits/sec [ 3] 0.0-16601.3 sec 19.3 GBytes 10.0 Mbits/sec I had iperf running for 4,5 hours with only 1 slow down but that was very stable after all and I reached a record of stable WiFi time! *** So it seems there are two problems I managed to narrown down: 1. On MT7603 "rx bitrate" of STA drops 72.2 → 6 MBit/s regularly 2. When catching up with traffic (after slow down) WiFi occasionally stalls