Linksys WRT1900ACS v2 terrible wifi performance with Android (Google Pixel) on 18.06.0 release

Hello,

I am using a Linksys WRT1900ACS v2 with OpenWRT 18.06.0 release and stock mwlwifi driver:

root@OpenWrt:~# opkg list-installed | fgrep mwlwifi
kmod-mwlwifi - 4.14.54+2018-03-30-fcaea79a-1
mwlwifi-firmware-88w8864 - 2018-06-15-8683de8e-1

With my Google Pixel Android smartphone I am having a horrible wifi performance. In my iperf3 tests sometimes it takes 15s until the transfer rate increases to an good value:

root@OpenWrt:~# iperf3 -c google-pixel -t 60 -i 1
Connecting to host 192.168.42.148, port 5201
[  5] local 192.168.42.1 port 43728 connected to 192.168.42.148 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   209 KBytes  1.71 Mbits/sec   12   2.83 KBytes
[  5]   1.00-2.00   sec  0.00 Bytes  0.00 bits/sec    9   1.41 KBytes
[  5]   2.00-3.00   sec  0.00 Bytes  0.00 bits/sec    3   1.41 KBytes
[  5]   3.00-4.00   sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes
[  5]   4.00-5.00   sec   136 KBytes  1.11 Mbits/sec   15   17.0 KBytes
[  5]   5.00-6.00   sec   520 KBytes  4.26 Mbits/sec    0   36.8 KBytes
[  5]   6.00-7.00   sec   165 KBytes  1.35 Mbits/sec   32   42.4 KBytes
[  5]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec   10   4.24 KBytes
[  5]   8.00-9.00   sec   263 KBytes  2.16 Mbits/sec   23   18.4 KBytes
[  5]   9.00-10.00  sec   392 KBytes  3.21 Mbits/sec    0   31.1 KBytes
[  5]  10.00-11.00  sec   400 KBytes  3.28 Mbits/sec   10   15.6 KBytes
[  5]  11.00-12.00  sec  0.00 Bytes  0.00 bits/sec    5   1.41 KBytes
[  5]  12.00-13.00  sec  0.00 Bytes  0.00 bits/sec    1   1.41 KBytes
[  5]  13.00-14.00  sec  0.00 Bytes  0.00 bits/sec    0   1.41 KBytes
[  5]  14.00-15.00  sec   127 KBytes  1.04 Mbits/sec   24   29.7 KBytes
[  5]  15.00-16.00  sec  44.5 MBytes   373 Mbits/sec    0   2.10 MBytes
[  5]  16.00-17.00  sec  40.0 MBytes   336 Mbits/sec    0   2.10 MBytes
[  5]  17.00-18.00  sec  37.5 MBytes   315 Mbits/sec    0   2.10 MBytes
[  5]  18.00-19.00  sec  36.2 MBytes   304 Mbits/sec    0   2.10 MBytes
[  5]  19.00-20.00  sec  37.5 MBytes   315 Mbits/sec    0   2.10 MBytes
[  5]  20.00-21.00  sec  37.5 MBytes   315 Mbits/sec    0   2.10 MBytes
[  5]  21.00-22.00  sec  37.5 MBytes   315 Mbits/sec    0   2.10 MBytes
[  5]  22.00-23.00  sec  37.5 MBytes   315 Mbits/sec    0   2.10 MBytes
[  5]  23.00-24.00  sec  37.5 MBytes   315 Mbits/sec    0   2.10 MBytes
[  5]  24.00-25.00  sec  38.8 MBytes   324 Mbits/sec    0   2.10 MBytes
[  5]  25.00-26.00  sec  37.5 MBytes   316 Mbits/sec    0   2.10 MBytes
[  5]  26.00-27.00  sec  37.5 MBytes   315 Mbits/sec    0   2.10 MBytes
[  5]  27.00-28.00  sec  37.5 MBytes   314 Mbits/sec    0   2.10 MBytes
[  5]  28.00-29.00  sec  36.2 MBytes   304 Mbits/sec   27   1.47 MBytes
[  5]  29.00-30.00  sec  37.5 MBytes   315 Mbits/sec    0   1.63 MBytes
[  5]  30.00-31.00  sec  37.5 MBytes   315 Mbits/sec    0   1.76 MBytes
[  5]  31.00-32.00  sec  37.5 MBytes   315 Mbits/sec    0   1.87 MBytes
[  5]  32.00-33.00  sec  36.2 MBytes   304 Mbits/sec    0   1.95 MBytes
[  5]  33.00-34.00  sec  37.5 MBytes   314 Mbits/sec    0   2.00 MBytes
[  5]  34.00-35.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  35.00-36.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  36.00-37.00  sec  36.2 MBytes   304 Mbits/sec    0   2.00 MBytes
[  5]  37.00-38.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  38.00-39.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  39.00-40.00  sec  36.2 MBytes   304 Mbits/sec    0   2.00 MBytes
[  5]  40.00-41.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  41.00-42.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  42.00-43.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  43.00-44.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  44.00-45.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  45.00-46.00  sec  36.2 MBytes   304 Mbits/sec    0   2.00 MBytes
[  5]  46.00-47.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  47.00-48.00  sec  37.5 MBytes   314 Mbits/sec    0   2.00 MBytes
[  5]  48.00-49.00  sec  38.8 MBytes   325 Mbits/sec    0   2.00 MBytes
[  5]  49.00-50.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  50.00-51.00  sec  36.2 MBytes   304 Mbits/sec    0   2.00 MBytes
[  5]  51.00-52.00  sec  38.8 MBytes   325 Mbits/sec    0   2.00 MBytes
[  5]  52.00-53.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  53.00-54.00  sec  38.8 MBytes   325 Mbits/sec    0   2.00 MBytes
[  5]  54.00-55.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  55.00-56.00  sec  40.0 MBytes   336 Mbits/sec    0   2.00 MBytes
[  5]  56.00-57.00  sec  37.5 MBytes   315 Mbits/sec    0   2.00 MBytes
[  5]  57.00-58.00  sec  38.8 MBytes   325 Mbits/sec    0   2.00 MBytes
[  5]  58.00-59.00  sec  26.2 MBytes   220 Mbits/sec  120    921 KBytes
[  5]  59.00-60.00  sec  37.5 MBytes   315 Mbits/sec    0   2.02 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-60.00  sec  1.65 GBytes   236 Mbits/sec  291             sender
[  5]   0.00-60.00  sec  1.65 GBytes   236 Mbits/sec                  receiver

While this test top output of the router seems to be normal. Load was under a value of 1. All other devices are performing quite good and in iperf3 test no anomalies appear.

With this behaviour daily surfing is a torture.

Do you have an idea how to debug this or what i can do to increase performance?

Here are some more information:

root@OpenWrt:~# cat /sys/kernel/debug/ieee80211/phy0/mwlwifi/info

driver name: mwlwifi
chip type: 88W8864
hw version: 7
driver version: 10.3.8.0-20180716
firmware version: 0x0702091a
power table loaded from dts: no
firmware region code: 0x30
mac address: XXXX
2g: disable
5g: enable
antenna: 4 4
irq number: 48
ap macid support: 0000ffff
sta macid support: 00010000
macid used: 00000003
radio: enable
iobase0: e0e80000
iobase1: e1000000
tx limit: 768
rx limit: 64
qe trigger number: 3570822
root@OpenWrt:~#  cat /sys/kernel/debug/ieee80211/phy1/mwlwifi/info

driver name: mwlwifi
chip type: 88W8864
hw version: 7
driver version: 10.3.4.0-20180330
firmware version: 0x0702091a
power table loaded from dts: no
firmware region code: 0x30
mac address: XXXX
2g: enable
5g: disable
antenna: 4 4
irq number: 49
ap macid support: 0000ffff
sta macid support: 00010000
macid used: 00000003
radio: enable
iobase0: e1180000
iobase1: e1300000
tx limit: 768
rx limit: 64
qe trigger number: 2487755

Thanks for your help!

The issue occours on both 2 Ghz and 5 Ghz band. In the 5 Ghz band i changed the channel to DFS and non DFS channels. Still the same behaviour.

Here is my /etc/config/wireless file:

root@OpenWrt:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11a'
        option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
        option country 'DE'
        option htmode 'VHT80'
        option legacy_rates '1'
        option channel '44'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option macaddr 'XXXX'
        option ssid 'Wifi'
        option key 'XXXX'
        option encryption 'psk2+ccmp'

config wifi-device 'radio1'
        option type 'mac80211'
        option hwmode '11g'
        option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
        option country 'DE'
        option htmode 'HT40'
        option legacy_rates '1'
        option channel '5'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option macaddr 'XXXX'
        option ssid 'Wifi'
        option key 'XXXX'
        option encryption 'psk2+ccmp'
        option wpa_disable_eapol_key_retries '1'

config wifi-iface
        option device 'radio0'
        option mode 'ap'
        option ssid 'WifiGuest'
        option network 'gast'
        option isolate '1'
        option key 'XXXXX'
        option encryption 'psk2+ccmp'
        option wpa_disable_eapol_key_retries '1'
        option disassoc_low_ack '0'

config wifi-iface
        option device 'radio1'
        option mode 'ap'
        option ssid 'WifiGuest'
        option network 'gast'
        option isolate '1'
        option key 'XXXX'
        option encryption 'psk2+ccmp'
        option wpa_disable_eapol_key_retries '1'

Not sure how you got two different driver version on phy0 and phy1, but regardless there is a long thread regarding android device on the issue tracker.

Thanks for the driver hint. I didn't recognized it until now. I don't know how i did this either. I removed the mwlwifi packages completly and reinstalled them after a reboot now i am at the same (stock) version.

I performed the tests again with the stock driver on 5 Ghz wifi but the result is the same:

root@OpenWrt:~# iperf3 -c 192.168.42.148 -i 1 -t 30
Connecting to host 192.168.42.148, port 5201
[  5] local 192.168.42.1 port 48180 connected to 192.168.42.148 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   175 KBytes  1.44 Mbits/sec    9   8.48 KBytes       
[  5]   1.00-2.00   sec  0.00 Bytes  0.00 bits/sec   12   5.66 KBytes       
[  5]   2.00-3.00   sec  91.9 KBytes   754 Kbits/sec   12   8.48 KBytes       
[  5]   3.00-4.00   sec  0.00 Bytes  0.00 bits/sec   10   4.24 KBytes       
[  5]   4.00-5.00   sec  0.00 Bytes  0.00 bits/sec    5   5.66 KBytes       
[  5]   5.00-6.00   sec   472 KBytes  3.87 Mbits/sec    0   28.3 KBytes       
[  5]   6.00-7.00   sec   219 KBytes  1.79 Mbits/sec   14   5.66 KBytes       
[  5]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec   14   5.66 KBytes       
[  5]   8.00-9.00   sec   255 KBytes  2.09 Mbits/sec    6   29.7 KBytes       
[  5]   9.00-10.00  sec   284 KBytes  2.33 Mbits/sec   15   19.8 KBytes       
[  5]  10.00-11.00  sec  8.54 MBytes  71.7 Mbits/sec   19    400 KBytes       
[  5]  11.00-12.00  sec  36.0 MBytes   302 Mbits/sec    0   1.97 MBytes       
[  5]  12.00-13.00  sec  30.0 MBytes   252 Mbits/sec    0   1.97 MBytes       
[  5]  13.00-14.00  sec  28.8 MBytes   241 Mbits/sec    0   1.97 MBytes       
[  5]  14.00-15.00  sec  28.8 MBytes   241 Mbits/sec    0   1.97 MBytes       
[  5]  15.00-16.00  sec  30.0 MBytes   252 Mbits/sec    0   1.97 MBytes       
[  5]  16.00-17.00  sec  28.8 MBytes   241 Mbits/sec    0   1.97 MBytes       
[  5]  17.00-18.00  sec  32.5 MBytes   273 Mbits/sec    0   1.97 MBytes       
[  5]  18.00-19.00  sec  28.8 MBytes   241 Mbits/sec    0   1.97 MBytes       
[  5]  19.00-20.00  sec  31.2 MBytes   262 Mbits/sec    0   1.97 MBytes       
[  5]  20.00-21.00  sec  30.0 MBytes   252 Mbits/sec    0   1.97 MBytes       
[  5]  21.00-22.00  sec  31.2 MBytes   262 Mbits/sec    0   1.97 MBytes       
[  5]  22.00-23.00  sec  31.2 MBytes   262 Mbits/sec    0   1.97 MBytes       
[  5]  23.00-24.00  sec  31.2 MBytes   262 Mbits/sec    0   1.97 MBytes       
[  5]  24.00-25.00  sec  32.5 MBytes   272 Mbits/sec    0   1.97 MBytes       
[  5]  25.00-26.00  sec  31.2 MBytes   262 Mbits/sec    0   1.97 MBytes       
[  5]  26.00-27.00  sec  31.2 MBytes   262 Mbits/sec    0   1.97 MBytes       
[  5]  27.00-28.00  sec  32.5 MBytes   273 Mbits/sec    0   1.97 MBytes       
[  5]  28.00-29.00  sec  31.2 MBytes   262 Mbits/sec    0   1.97 MBytes       
[  5]  29.00-30.00  sec  31.2 MBytes   262 Mbits/sec    0   1.97 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-30.00  sec   599 MBytes   167 Mbits/sec  116             sender
[  5]   0.00-30.00  sec   597 MBytes   167 Mbits/sec                  receiver

iperf Done.

Yes i now this issue. But the error is a bit different. I don't have any disconnection/DHCP issues. The general performance only is quite bad. This issue seems to be quite similar to mine.

I know that some people who reported an issue with the mwlwifi that comes OOTB with 18.06.0(which is dated and has known issues(the 307 issue you linked)), have reported improvement with the updated one that will be pushed with the 18.06.1 stable. I would start by getting that next stable image; I think it may still be a RC though.

Edit: should note that on 2.4 you are doing yourself, and your neighbours, a disservice by not sticking to 1 | 6 | 11.

I already installed eduperez precompiled build (10.3.8.0-20180716) and tested with this version. The result was the same. I reverted back to the Driver shipped with 18.06.0.

Tomorrow i will test with eduperez brand new 10.3.8.0-20180810 build

The upcoming 18.06.1 release will use an older driver version than in the new build of eduperez. Does this version also have the fixes included you approached?

There is nothing of consequence as regards the wrtpac devices in any of the commits pushed to the mwlwifi repository post the one currently in_master_. Which I guess is the reason no one has bothered to submit a patch to upgrade master. But you will want to use at least / at a minimum the one currently in master.

Which repository do you mean when you mention master?
Yesterday i did some tests with the new driver packed by eduperez. The result seems to be a bit better but still not acceptable... Does anyone have an idea how to debug this? The logs do not show any messages when this occurs.

I mean the OpenWrt master git tree.