openwrt / mt76

mac80211 driver for MediaTek MT76x0e, MT76x2e, MT7603, MT7615, MT7628 and MT7688
742 stars 342 forks source link

MT7622/MT7915E Slow 802.11ax speeds #709

Open dmsza opened 1 year ago

dmsza commented 1 year ago

OpenWrt on MT7622/MT7915E (MT7911AN) devices has issues with 802.11ax@5Ghz performance (specially upload speeds) when the client device has an obstacle (such as a brick wall) in between. In this situation 802.11ax performance degrades severely, while 802.11ac in the same situation has a much better performance. This issue has been reported by Redmi AX6S and Belkin RT3200 users with 22.03.x builds and also with master/nightly builds. More details in the OpenWrt forum at https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466/1 including test results and how to reproduce.

graysky2 commented 1 year ago

In all the forum posts about this, has anyone done the comparison of the proprietary 802.11ax driver (ie non-openwrt) vs this open source 802.11ax driver?

eginnc commented 1 year ago

has anyone done the comparison of the proprietary 802.11ax driver (ie non-openwrt) vs this open source 802.11ax driver

Looks like dsouza did here.

dmsza commented 1 year ago

Yep, I did as @eginnc mentioned above (I'm dsouza user in the forum).

ryderlee1110 commented 1 year ago

I think this could be related to particular APs as everything goes well on my devices (as well as other users I know).

graysky2 commented 1 year ago

@ryderlee1110 - Can you share the exact settings you have configured in your /etc/config/wireless so that affected users can replicate and test? Have you tried the iperf3 3-parallel streams upload test (on the phone) to the server with, 1) no walls between the AP and the phone, 2) 1 wall, 3) 2 walls, 4) 2 walls and some large object such as a piece of furniture in AX mode?

mdbecker commented 1 year ago

Can confirm this exact issue on my brand new Belkin AX3200.

No brick walls required, if I just walk a few feet from the AP it will go from HE-MCS 11 to HE-MCS 0 on the RX. The issue never effects the TX. Speed test run from several places in my house on both the stock FW and openwrt. Channel 36, 80MHz in all tests. I ran all these tests on a new 2021 Macbook Pro. Once someone in the original thread pointed out that this issue seems to be limited to Apple devices I ran a speedtest on my Pixel 5 and saw that I was getting better speeds (294Mbps/244Mbps Pixel vs 296Mbps/183Mbps Macbook at location 1).

I noticed performance degrades even further when I switch from 80MHz to 160MHz windows (285Mbps/189Mbps Pixel vs 276Mbps/14Mbps Macbook at location 1).

Internet speed tests

image

iperf3 tests iperf3 -c -d -P 10

Location 1

Stock AX

[SUM]   0.00-10.00  sec   317 MBytes   266 Mbits/sec                  sender
[SUM]   0.00-10.16  sec   302 MBytes   250 Mbits/sec                  receiver

OpenWRT AX

[SUM]   0.00-10.00  sec   203 MBytes   170 Mbits/sec                  sender
[SUM]   0.00-10.06  sec   198 MBytes   165 Mbits/sec                  receiver

OpenWRT AC

[SUM]   0.00-10.00  sec   379 MBytes   318 Mbits/sec                  sender
[SUM]   0.00-10.02  sec   374 MBytes   313 Mbits/sec                  receiver

Location 2

Stock AX

[SUM]   0.00-10.00  sec  94.2 MBytes  79.0 Mbits/sec                  sender
[SUM]   0.00-10.05  sec  92.5 MBytes  77.2 Mbits/sec                  receiver

OpenWRT AX

[SUM]   0.00-10.00  sec  18.7 MBytes  15.7 Mbits/sec                  sender
[SUM]   0.00-10.71  sec  17.3 MBytes  13.6 Mbits/sec                  receiver

OpenWRT AC

[SUM]   0.00-10.00  sec   154 MBytes   130 Mbits/sec                  sender
[SUM]   0.00-10.11  sec   151 MBytes   125 Mbits/sec                  receiver

Location 3

Stock AX

[SUM]   0.00-10.00  sec   102 MBytes  85.7 Mbits/sec                  sender
[SUM]   0.00-10.07  sec  99.4 MBytes  82.8 Mbits/sec                  receiver

OpenWRT AX

[SUM]   0.00-10.00  sec  14.7 MBytes  12.3 Mbits/sec                  sender
[SUM]   0.00-10.56  sec  13.5 MBytes  10.7 Mbits/sec                  receiver

OpenWRT AC

[SUM]   0.00-10.00  sec   261 MBytes   219 Mbits/sec                  sender
[SUM]   0.00-10.08  sec   256 MBytes   213 Mbits/sec                  receiver

Location 4

Stock AX

[SUM]   0.00-10.00  sec  99.8 MBytes  83.7 Mbits/sec                  sender
[SUM]   0.00-10.12  sec  96.4 MBytes  79.9 Mbits/sec                  receiver

OpenWRT AX

[SUM]   0.00-10.00  sec  12.9 MBytes  10.8 Mbits/sec                  sender
[SUM]   0.00-10.59  sec  11.7 MBytes  9.28 Mbits/sec                  receiver

OpenWRT AC

[SUM]   0.00-10.00  sec   261 MBytes   219 Mbits/sec                  sender
[SUM]   0.00-10.05  sec   256 MBytes   214 Mbits/sec                  receiver

Location 5

Stock AX

[SUM]   0.00-10.00  sec   208 MBytes   175 Mbits/sec                  sender
[SUM]   0.00-10.20  sec   199 MBytes   163 Mbits/sec                  receiver

OpenWRT AX

[SUM]   0.00-10.00  sec  16.5 MBytes  13.8 Mbits/sec                  sender
[SUM]   0.00-10.74  sec  15.3 MBytes  12.0 Mbits/sec                  receiver

OpenWRT AC

[SUM]   0.00-10.00  sec   193 MBytes   162 Mbits/sec                  sender
[SUM]   0.00-10.03  sec   190 MBytes   159 Mbits/sec                  receiver
graysky2 commented 1 year ago
@mdbecker - Thanks for doing those tests and for the nice summary. Something is wrong with open source driver... condition % loss relative to stock ax driver
no barrier 34-36 %
single wall 80-82 %
two walls 87-88 %
two walls and object 92-93 %
ernie-t commented 1 year ago

I think this could be related to particular APs as everything goes well on my devices (as well as other users I know).

I have tested on following Devices: Belkin AX3200, Xiaomi AX3200/AX6S - same problems. Also speed decreases in AC Mode after 24h extremely.

Gingernut1978 commented 1 year ago

I think this is not a mt76 driver problem as others have reported the same degrading performance on other platforms, ath11k for example.

Could it be possibly a problem with how mac80211/hostapd setup the radios?

ThiloteE commented 1 year ago

as others have reported the same degrading performance on other platforms, ath11k for example.

source?

Gingernut1978 commented 1 year ago

as others have reported the same degrading performance on other platforms, ath11k for example.

source? At the bottom of this thread there are some wireless tests: https://forum.openwrt.org/t/adding-openwrt-support-for-xiaomi-ax3600/55049/9077

ThiloteE commented 1 year ago

https://forum.openwrt.org/t/adding-openwrt-support-for-xiaomi-ax3600/55049/9077

Not sure if those measurements really are related,

Gingernut1978 commented 1 year ago

Well I did say it was just one example.

If you read through the thread you'll find more tests done by other users, some I actually did, that are more wifi AX vs AC specific. Others and I found AX transfer speed heavily dropped when obstacles like thin walls, doors were in between client and station even though the signal quality wasn't bad. If in the same room, right next the the station, transfer speeds were excellent.

ThiloteE commented 1 year ago

@Gingernut1978 you understand that this thread has 8970 (!) comments?! Who has time to read all that. Please be precise with measurements and your statements and when stating a source. Thank you.

ThiloteE commented 1 year ago

ok, i actually found an Ath11k driver comparison between wifi 802.11ac vs 802.11ax in this comment, which confirms terrible ax performance, but that was from March 2021... so might be outdated.

lukasz1992 commented 1 year ago

Do https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466/170 or https://github.com/openwrt/openwrt/commit/590eaaeed59a9eb6637a1480587fc410de182523 help for the issue?

ThiloteE commented 1 year ago

Do https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466/170 or openwrt/openwrt@590eaae help for the issue?

Apparently not if this latest comment is to be believed: https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466/177 (Edit: If my assumption is correct that bbs colour option has been enabled by default in newest OpenWRT snapshot)

graysky2 commented 1 year ago

See my post here for details. Highlight is that running a snapshot build from HEAD yesterday, my Redmi AX6000 finally gives high throughput from behind several walls and a couch (lots of signal blockage) in AX mode but only when using 160 MHz width/channel 100. If I keep it on 80 MHz/channel 149, the throughput is terrible again.

Would love to hear @nbd168 insights into this interesting result.

Anteus commented 1 year ago

Latest mt76 update seems to have fixed it on rt3200 at least. https://forum.openwrt.org/t/belkin-rt3200-linksys-e8450-wifi-ax-discussion/94302/3394?u=anteus

graysky2 commented 1 year ago

The issue is still affecting Redmi AX6000.

darekxan commented 1 year ago

According to my measurements this is no longer an issue with latest snapshots https://forum.openwrt.org/t/belkin-rt3200-linksys-e8450-wifi-ax-discussion/94302/3419

taylorkline commented 1 year ago

According to my measurements this is no longer an issue with latest snapshots https://forum.openwrt.org/t/belkin-rt3200-linksys-e8450-wifi-ax-discussion/94302/3419

Chiming in to +1. Speeds now equivalent to 802.11ac on the troublesome 2021 MacBook Pro, and other devices are hitting 802.11ax-only speeds.

I'm on snapshot build r22000-6bc675c0be

FYI, I always need to SSH in and run opkg update && opkg install luci with snapshot builds.

I left this same comment at: https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466/272?u=jkdf2

taylorkline commented 1 year ago

Just wanted to update that this issue seems to have regressed, it is being discussed in the forum thread starting from here: https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466/334

taylorkline commented 1 year ago

@nbd168 Would you mind if I politely tagged you to ask if you might know what caused this issue to regress to 22.03.3 behavior for 80 Mhz Channel Width, yet not in the 120 Mhz Channel Width?

At least, these are my findings here: https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466/355?u=jkdf2

ThiloteE commented 1 year ago

Just a short summary of recent events:

So far, it is not clear what is the exact cause for the regression. Some have hypothesized it might be related to the code that is responsible for 160 MHz channel support. While 160 MHz support was removed with https://github.com/openwrt/openwrt/commit/521efb62ebb55dcc67dc618757aa2e3ccbdf3774, there were multiple people that reported 160 MHz had worked very well for them, hence 160 MHz was brought back with https://github.com/openwrt/openwrt/commit/4dd0eaffc142e9782681353a53748e68cd731d49.

See issues

darekxan commented 1 year ago

I've redone my tests, for me everything is ok for 5ghz ax radio: https://forum.openwrt.org/t/belkin-rt3200-linksys-e8450-wifi-ax-discussion/94302/3507?

Anteus commented 1 year ago

On rt3200 I found the line that triggers the slowdown https://github.com/openwrt/mt76/commit/f9ca70d6367a16fecd80b93fec60fb0d4e3b9fd0#commitcomment-104764055

Wepeemy commented 1 year ago

Hi, just want to ask, has the speed issue solved, with the latest snapshot available for Redmi AX6s router based on MT7622B + MT7915E chips? Thank you.

Aloki commented 1 year ago

On my Xiaomi AX3200 router, iperf3 measurements show 1 Mbps from laptop (Intel AX201) to router and 400 Mbps from router to laptop. The router is on the table, the laptop is under the table. OpenWrt 22.03.5 and SNAPSHOT r22746-590d1fd0e6.

config wifi-device 'radio1'
        option type 'mac80211'
        option path '1a143000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
        option channel '36'
        option band '5g'
        option htmode 'HE160'
        option country 'RU'
        option cell_density '0'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid '***'
        option encryption 'sae'
        option key '***'
Wepeemy commented 1 year ago

On my Xiaomi AX3200 router, iperf3 measurements show 1 Mbps from laptop (Intel AX201) to router and 400 Mbps from router to laptop. The router is on the table, the laptop is under the table. OpenWrt 22.03.5 and SNAPSHOT r22746-590d1fd0e6.

config wifi-device 'radio1'
        option type 'mac80211'
        option path '1a143000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
        option channel '36'
        option band '5g'
        option htmode 'HE160'
        option country 'RU'
        option cell_density '0'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid '***'
        option encryption 'sae'
        option key '***'

Have you try this workaround method:https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466/50 and see if there is any improvement?

Anteus commented 1 year ago

This fixes it for rt3200 which also have the mt7915. Easy to test if it works fine with AC instead of AX.

https://github.com/openwrt/mt76/pull/768

Aloki commented 1 year ago

Have you try this workaround method:https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466/50 and see if there is any improvement?

I apologize for the false alarm. As I found out, the problem was in Hyper-V. The virtual switch was connected to an external network, so the Wi-Fi adapter was in bridge mode. And for some reason, in this mode, the upload speed dropped to 1 Mbps. I deleted the virtual switch and the speed became normal (950 Mbps).

taylorkline commented 1 year ago

@Anteus is there any way I can try your patch via https://firmware-selector.openwrt.org/ or build it locally on macOS without extensive dev env setup?

(PS I've moved to a Xiaomi Redmi Router AX6000 which has the same issue)

cryobry commented 1 year ago

@Anteus is there any way I can try your patch via https://firmware-selector.openwrt.org/ or build it locally on macOS without extensive dev env setup?

(PS I've moved to a Xiaomi Redmi Router AX6000 which has the same issue)

There's also an open PR I made for the AX6000 specifically that you can use. I'm also in the process of writing "openwrtbuilder", a program that can build from source and incorporate patches: https://git.bryanroessler.com/bryan/openwrtbuilder

It's not done and unfortunately I won't be able to help support you until tomorrow.

Anteus commented 1 year ago

@Anteus is there any way I can try your patch via https://firmware-selector.openwrt.org/ or build it locally on macOS without extensive dev env setup?

(PS I've moved to a Xiaomi Redmi Router AX6000 which has the same issue)

I build on my M2 MacBook Air, it takes only about ten minutes when the dev env is set up. There's a section here for building on macOS https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem

Haven't gotten eBPF to build on Apple Silicon though so for example no Qosify but the normal SQM packages works fine.

Anteus commented 1 year ago

I think this could be closed as of this commit https://github.com/openwrt/mt76/commit/bb3937d5c3e0b13c0d08747ec0fc9726fb4fd870 which removes VHT160 from mt7915 non-dbdc.

King-Of-Knights commented 1 year ago

@Anteus Hi, does it mean mt7915e share the driver with mt7915? I found my mt7916 run about twice faster on ax 80MHz than ax 160MHz

Anteus commented 1 year ago

I would think so. Maybe it's like mt7915 which can only can do 2x2 NSS at 160?

King-Of-Knights commented 1 year ago

@Anteus ^_^ Does this commit mean mt7915 or mt7915e will run at normal speed?

Anteus commented 1 year ago

@King-Of-Knights mt7915

King-Of-Knights commented 1 year ago

@Anteus OK, after some test, I find bb3937d will let me use more 5G channel. Like 149 153 channel (which signal cannot be shown in my list before). However, I still suffer slow speed in 5G 160MHz, while 80MHz works just fine.