Bug 216869 - ath10k SoftAP: zero speed between clients on QCA6174
Summary: ath10k SoftAP: zero speed between clients on QCA6174
Status: RESOLVED CODE_FIX
Alias: None
Product: Networking
Classification: Unclassified
Component: Wireless (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: networking_wireless@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-12-30 17:37 UTC by Artem
Modified: 2023-08-06 18:39 UTC (History)
2 users (show)

See Also:
Kernel Version: 5.15.80
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Artem 2022-12-30 17:37:45 UTC
I have the Qualcomm Atheros QCNFA344A M2 module

$ lspci
02:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)

$ dmesg | grep ath10k
[    3.445810] ath10k_pci 0000:02:00.0: enabling device (0000 -> 0002)
[    3.446081] ath10k_pci 0000:02:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[    3.680848] ath10k_pci 0000:02:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1028:0310
[    3.680851] ath10k_pci 0000:02:00.0: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0
[    3.681176] ath10k_pci 0000:02:00.0: firmware ver WLAN.RM.4.4.1-00288- api 6 features wowlan,ignore-otp,mfp crc32 bf907c7c
[    3.748580] ath10k_pci 0000:02:00.0: board_file api 2 bmi_id N/A crc32 62812cba
[    3.840194] ath10k_pci 0000:02:00.0: htt-ver 3.87 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
[    3.900322] ath10k_pci 0000:02:00.0 wlp2s0: renamed from wlan0

Now I create an AP on it either via hostapd or NetworkManager like "sudo nmcli dev wifi hotspot ifname wlp2s0 ssid test password "mypass""

Then I connect few various clients to it and benchmark speed from any client to AP via iperf3, which is fine

Connecting to host 10.42.0.1, port 5201
[  5] local 10.42.0.19 port 60646 connected to 10.42.0.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  3.89 MBytes  32.6 Mbits/sec    0    208 KBytes       
[  5]   1.00-2.00   sec  4.04 MBytes  33.9 Mbits/sec    0    331 KBytes       
[  5]   2.00-3.00   sec  3.23 MBytes  27.1 Mbits/sec    6    280 KBytes       
[  5]   3.00-4.00   sec  3.04 MBytes  25.5 Mbits/sec    1    308 KBytes       
[  5]   4.00-5.00   sec  4.16 MBytes  34.9 Mbits/sec    0    378 KBytes       
[  5]   5.00-6.00   sec  4.04 MBytes  33.9 Mbits/sec    0    411 KBytes       
[  5]   6.00-7.00   sec  4.16 MBytes  34.9 Mbits/sec    0    411 KBytes       
[  5]   7.00-8.00   sec  2.67 MBytes  22.4 Mbits/sec    0    436 KBytes       
[  5]   8.00-9.00   sec  3.85 MBytes  32.3 Mbits/sec    0    458 KBytes       
[  5]   9.00-10.00  sec  2.92 MBytes  24.5 Mbits/sec    0    458 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  36.0 MBytes  30.2 Mbits/sec    7             sender
[  5]   0.00-10.02  sec  34.0 MBytes  28.4 Mbits/sec                  receiver

iperf Done.


Now I try to measure speed between any two clients and get

Connecting to host 10.42.0.83, port 5201
[  5] local 10.42.0.19 port 58262 connected to 10.42.0.83 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   414 KBytes  3.39 Mbits/sec    7   7.07 KBytes       
[  5]   1.00-2.00   sec  0.00 Bytes  0.00 bits/sec   12   2.83 KBytes       
[  5]   2.00-3.00   sec  0.00 Bytes  0.00 bits/sec   16   4.24 KBytes       
[  5]   3.00-4.00   sec  0.00 Bytes  0.00 bits/sec    8   15.6 KBytes       
[  5]   4.00-5.00   sec  0.00 Bytes  0.00 bits/sec   13   2.83 KBytes       
[  5]   5.00-6.00   sec  0.00 Bytes  0.00 bits/sec   11   4.24 KBytes       
[  5]   6.00-7.00   sec  0.00 Bytes  0.00 bits/sec    7   2.83 KBytes       
[  5]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec    4   4.24 KBytes       
[  5]   8.00-9.00   sec   127 KBytes  1.04 Mbits/sec    3   2.83 KBytes       
[  5]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec    4   2.83 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   542 KBytes   444 Kbits/sec   85             sender
[  5]   0.00-10.01  sec   277 KBytes   227 Kbits/sec                  receiver

iperf Done.

Which is a way too low. Ssh is also very slow between clients, VNC shows similar speed rates and unable to render desktop at that speed for sure

The system is totally stock and clean. I also have USB ath9k adapter in this system, which doesn't show this issue

$ lsusb
Bus 001 Device 004: ID 0cf3:9271 Qualcomm Atheros Communications AR9271 802.11n

$ dmesg | grep ath9k
[    3.446722] usb 1-3.3: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
[    3.446804] usbcore: registered new interface driver ath9k_htc
[    3.734857] usb 1-3.3: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size: 51008
[    3.985462] ath9k_htc 1-3.3:1.0: ath9k_htc: HTC initialized with 33 credits
[    4.212339] ath9k_htc 1-3.3:1.0: ath9k_htc: FW Version: 1.4
[    4.212343] ath9k_htc 1-3.3:1.0: FW RMW support: On
[    4.217755] ath9k_htc 1-3.3:1.0 legacy: renamed from wlan0

Speed between two clients is fine for it

Connecting to host 10.42.1.83, port 5201
[  5] local 10.42.1.19 port 43456 connected to 10.42.1.83 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.43 MBytes  12.0 Mbits/sec    0    107 KBytes       
[  5]   1.00-2.00   sec  1.55 MBytes  13.0 Mbits/sec    0    165 KBytes       
[  5]   2.00-3.00   sec  1.24 MBytes  10.4 Mbits/sec    0    208 KBytes       
[  5]   3.00-4.00   sec  1018 KBytes  8.34 Mbits/sec    0    247 KBytes       
[  5]   4.00-5.00   sec   509 KBytes  4.17 Mbits/sec   19    198 KBytes       
[  5]   5.00-6.00   sec  1.12 MBytes  9.39 Mbits/sec    0    232 KBytes       
[  5]   6.00-7.00   sec  1.68 MBytes  14.1 Mbits/sec    0    252 KBytes       
[  5]   7.00-8.00   sec   573 KBytes  4.69 Mbits/sec    0    259 KBytes       
[  5]   8.00-9.00   sec  1.12 MBytes  9.38 Mbits/sec    0    264 KBytes       
[  5]   9.00-10.00  sec  1.12 MBytes  9.39 Mbits/sec    0    264 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  11.3 MBytes  9.49 Mbits/sec   19             sender
[  5]   0.00-10.11  sec  10.4 MBytes  8.59 Mbits/sec                  receiver

iperf Done.
Comment 1 Artem 2023-01-12 19:11:59 UTC
Looks like firmware issue. Fixed by downgrading linux-firmware package down to 20220411

Last good firmware 
linux-firmware-20220411
[    3.859587] ath10k_pci 0000:02:00.0: firmware ver WLAN.RM.4.4.1-00157-QCARMSWPZ-1 api 6 features wowlan,ignore-otp,mfp crc32 90eebefb
[    3.926126] ath10k_pci 0000:02:00.0: board_file api 2 bmi_id N/A crc32 706c395e
[    4.017441] ath10k_pci 0000:02:00.0: htt-ver 3.60 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
Connecting to host li-si-tsin, port 5201
[  7] local 10.0.0.230 port 46036 connected to 10.0.0.50 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  7]   0.00-1.00   sec  16.5 MBytes   138 Mbits/sec    0    789 KBytes       
[  7]   1.00-2.00   sec  15.0 MBytes   126 Mbits/sec    0   1.15 MBytes       
[  7]   2.00-3.00   sec  15.0 MBytes   126 Mbits/sec    0   1.38 MBytes       
[  7]   3.00-4.00   sec  16.2 MBytes   136 Mbits/sec    0   1.54 MBytes       
[  7]   4.00-5.00   sec  16.2 MBytes   136 Mbits/sec    0   1.54 MBytes       
[  7]   5.00-6.00   sec  16.2 MBytes   136 Mbits/sec    0   1.54 MBytes       
[  7]   6.00-7.00   sec  16.2 MBytes   136 Mbits/sec    0   1.60 MBytes       
[  7]   7.00-8.00   sec  15.0 MBytes   126 Mbits/sec   36   1.22 MBytes       
[  7]   8.00-9.00   sec  17.5 MBytes   147 Mbits/sec    0   1.34 MBytes       
[  7]   9.00-10.00  sec  16.2 MBytes   136 Mbits/sec    0   1.39 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  7]   0.00-10.00  sec   160 MBytes   134 Mbits/sec   36             sender
[  7]   0.00-10.01  sec   157 MBytes   132 Mbits/sec                  receiver

iperf Done.

First bad firmware
linux-firmware-20220509
[    3.767713] ath10k_pci 0000:02:00.0: firmware ver WLAN.RM.4.4.1-00288- api 6 features wowlan,ignore-otp,mfp crc32 bf907c7c
[    3.835130] ath10k_pci 0000:02:00.0: board_file api 2 bmi_id N/A crc32 62812cba
[    3.927381] ath10k_pci 0000:02:00.0: htt-ver 3.87 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
Connecting to host li-si-tsin, port 5201
[  7] local 10.0.0.230 port 56856 connected to 10.0.0.50 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  7]   0.00-1.00   sec   107 KBytes   879 Kbits/sec   12   11.3 KBytes       
[  7]   1.00-2.00   sec   158 KBytes  1.30 Mbits/sec    0   17.0 KBytes       
[  7]   2.00-3.00   sec   205 KBytes  1.68 Mbits/sec    0   22.6 KBytes       
[  7]   3.00-4.00   sec  67.9 KBytes   556 Kbits/sec   11   5.66 KBytes       
[  7]   4.00-5.00   sec   127 KBytes  1.04 Mbits/sec    3   5.66 KBytes       
[  7]   5.00-6.00   sec   191 KBytes  1.56 Mbits/sec    7   8.48 KBytes       
[  7]   6.00-7.00   sec   127 KBytes  1.04 Mbits/sec    6   11.3 KBytes       
[  7]   7.00-8.00   sec  63.6 KBytes   521 Kbits/sec    8   5.66 KBytes       
[  7]   8.00-9.00   sec   191 KBytes  1.56 Mbits/sec    6   4.24 KBytes       
[  7]   9.00-10.00  sec   127 KBytes  1.04 Mbits/sec    4   7.07 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  7]   0.00-10.00  sec  1.33 MBytes  1.12 Mbits/sec   57             sender
[  7]   0.00-10.17  sec  1.23 MBytes  1.02 Mbits/sec                  receiver
Comment 2 Artem 2023-08-06 18:39:25 UTC
Fixed with firmware-6.bin_WLAN.RM.4.4.1-00309-

Note You need to log in before you can comment on or make changes to this bug.