Archer C7 V4 / ath10k performance has improved!

So, I've been using a Raspberry Pi 4 + RTL8153 USB3 (UE300) dongle as main router, and two Archer C7 v4 units as managed switches + dumb APs for three years already, great setup. These units have been running at 1GHz for a few years now too, no instability, no issues.

Yesterday I compiled a fresh SNAPSHOT (r25732) build for both the Pi4 and both the C7s, and decided to do a few performance tests with iperf3 to see how things are going in my network, also wanted to try kernel 6.1 for the APs. The C7 builds are done with stock compiler settings and -march=74kc -mtune=74kc, doesn't hurt.

This is with ath10k non ct firmware. Had no problems whatsoever running the -ct versions for years, just wanted to see how things were on the non-ct side of things this time. I know the non-ct firmware is faster.

iperf3 server running in a local x86 server, client is a 2x2 Android phone. TCP, single stream. Line of sight to antennas, ~2m distance. LAN <=> LAN, best possible conditions, etc. Pure WiFi performance test.

Server:

Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: -----------------------------------------------------------
Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: Server listening on 5201 (test #24)
Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: -----------------------------------------------------------
Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: Accepted connection from 192.168.10.106, port 41466
Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: [  5] local 192.168.10.10 port 5201 connected to 192.168.10.106 port 41480
Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: [ ID] Interval           Transfer     Bitrate
Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: [  5]   0.00-30.02  sec  2.21 GBytes   631 Mbits/sec
Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: - - - - - - - - - - - - - - - - - - - - - - - - -
Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: [ ID] Interval           Transfer     Bitrate
Apr 02 13:37:13 5600G-SERVER iperf3[2287343]: [  5]   0.00-30.02  sec  2.21 GBytes   631 Mbits/sec                  receiver

Phone:

Connecting to host 192.168.10.10, port 5201
[  5] local 192.168.10.106 port 41480 connected to 192.168.10.10 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  77.4 MBytes   649 Mbits/sec    0   3.81 MBytes       
[  5]   1.00-2.00   sec  80.0 MBytes   672 Mbits/sec    0   3.92 MBytes       
[  5]   2.00-3.00   sec  76.2 MBytes   639 Mbits/sec    0   3.92 MBytes       
[  5]   3.00-4.00   sec  75.0 MBytes   629 Mbits/sec    0   3.92 MBytes       
[  5]   4.00-5.00   sec  78.8 MBytes   661 Mbits/sec    0   3.92 MBytes       
[  5]   5.00-6.00   sec  78.8 MBytes   661 Mbits/sec    0   3.92 MBytes       
[  5]   6.00-7.01   sec  78.8 MBytes   656 Mbits/sec    0   3.92 MBytes       
[  5]   7.01-8.00   sec  77.5 MBytes   652 Mbits/sec    0   3.92 MBytes       
[  5]   8.00-9.00   sec  77.5 MBytes   652 Mbits/sec    0   3.92 MBytes       
[  5]   9.00-10.00  sec  81.2 MBytes   682 Mbits/sec    0   3.92 MBytes       
[  5]  10.00-11.00  sec  71.2 MBytes   596 Mbits/sec    1   2.74 MBytes       
[  5]  11.00-12.00  sec  73.8 MBytes   621 Mbits/sec    1   2.88 MBytes       
[  5]  12.00-13.00  sec  73.8 MBytes   618 Mbits/sec    0   3.10 MBytes       
[  5]  13.00-14.00  sec  76.2 MBytes   640 Mbits/sec    0   3.30 MBytes       
[  5]  14.00-15.00  sec  77.5 MBytes   650 Mbits/sec    0   3.46 MBytes       
[  5]  15.00-16.00  sec  76.2 MBytes   640 Mbits/sec    0   3.58 MBytes       
[  5]  16.00-17.00  sec  76.2 MBytes   640 Mbits/sec    0   3.70 MBytes       
[  5]  17.00-18.00  sec  76.2 MBytes   640 Mbits/sec    0   3.72 MBytes       
[  5]  18.00-19.00  sec  76.2 MBytes   637 Mbits/sec    0   3.82 MBytes       
[  5]  19.00-20.00  sec  75.0 MBytes   631 Mbits/sec    0   3.85 MBytes       
[  5]  20.00-21.00  sec  76.2 MBytes   640 Mbits/sec    0   3.85 MBytes       
[  5]  21.00-22.00  sec  77.5 MBytes   651 Mbits/sec    0   3.85 MBytes       
[  5]  22.00-23.00  sec  77.5 MBytes   650 Mbits/sec    0   3.85 MBytes       
[  5]  23.00-24.00  sec  73.8 MBytes   619 Mbits/sec    0   3.85 MBytes       
[  5]  24.00-25.00  sec  67.5 MBytes   566 Mbits/sec    0   3.85 MBytes       
[  5]  25.00-26.00  sec  70.0 MBytes   588 Mbits/sec    0   3.85 MBytes       
[  5]  26.00-27.00  sec  68.8 MBytes   577 Mbits/sec    0   3.91 MBytes       
[  5]  27.00-28.00  sec  70.0 MBytes   587 Mbits/sec    0   3.91 MBytes       
[  5]  28.00-29.00  sec  70.0 MBytes   586 Mbits/sec    1   2.80 MBytes       
[  5]  29.00-30.00  sec  73.8 MBytes   620 Mbits/sec    0   3.04 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-30.00  sec  2.21 GBytes   632 Mbits/sec    3             sender
[  5]   0.00-30.02  sec  2.21 GBytes   631 Mbits/sec                  receiver

iperf Done.

As you can see, peaks near ~670-680 Mbps! sirq 97-99% as usual. Ran the same tests a few years back in the 21.02 days, same conditions resulted in ~350 Mbps with the same 2x2 phone, single TCP stream. That was with the -ct firmware. Make it 400 Mbps if you want to account for non-ct firmware back then. Multiple streams are no longer needed to get closer to the maximum real world throughput limit.

I don't have a 3x3 client, but seeing these results now, there probably isn't much more to extract from this old hardware. This is much closer to what stock TP-Link firmware performance was back in the day which is all of an achievement on its own.

Looks like I won't be replacing these any time soon for AP duty, lol. Really nice to see!

2 Likes