Ipq806x NSS build (Netgear R7800 / TP-Link C2600 / Linksys EA8500)

A few more questions about the 5.15 build. Does it use swconfig or DSA driver. What about a version with ath-10k WLAN drivers. From the above logs I see it uses default -ct WLAN drivers.
Any observations on the performance of the R7800 with 5.15.

@ everyone ...

I've updated the nss-packages to be fully modular, nss-drv now manages the proper dependancies based on packages selected from nss-clients and nss-ecm. I've also patched the drivers to compile about 95% of the nss-client packages (even ones not meant for ipq806x...). This should help a lot of the compiling issues.

To avoid a full rebuild, I smoke test with the following.

make target/compile package/{qca-nss-gmac,qca-nss-drv,qca-nss-clients,qca-nss-ecm}/{clean,compile} V=s -j4

if everything looks good, compile the remaining portion with

make package/{compile,install,index} target/install V=s -j4
1 Like

@asvio excellent, can you do a few iperf tests?

@sppmaster , it currently uses swconfig. nss-gmac does not play nicely with DSA. The whole driver has to be rewritten, which is way outside of my basic C and kernel stack knowledge. I'm using a "hybrid" ath10k + ath10k-ct, mostly for debugging and being able to use a config file for the firmware loading. The firmware is non-CT, version 10.4-3.9.0.2-00159. The linux-firmware package is using an older version I believe. I'm pulling the max speeds (647mbps on ios) capable with only marginal CPU usage.

Personally I'd like to test the 5.15-qsdk11-new-krait-cc version with ath10k Test reducing NAPI polling time in AQL.

1 Like

That's the one I'm currently testing as well. So far it's been pretty stable, granted it's only been 72 hours. The compile instructions are the same.

1 Like

So setting NAPI down to 8 is stable?

there are a few other options we are fiddling with to turn down the txop size in the beacon and on the AP in hostapd. IF 5.15 is proving out stable I can finally re-port the changes we made to make those settings dynamic, based on load, but until recently, nothing was budging...

and I'm really big on flent rrul, tcp_nup, down, and rtt_fair tests, or if you must, packet captures from iperf.

this is the goal: AQL and the ath10k is *lovely* - #908 by amteza

The other goal is it was my hope that turning NAPI down, might get the current 40x1 up/own isparity closer to even: AQL and the ath10k is *lovely* - #901 by amteza

1 Like

I can and i’ll do.

1 Like

Would you be so kind as to mimic my flent tests? and for one of those tests if latency is still high on the upload, can you try reducing aql_tx_limit to 2,000 ms both for high and low?

for ac in 0 1 2 3; do echo $ac 2000 2000 > /sys/kernel/debug/ieee80211/phy1/aql_txq_limit; done

Note: phy1 should be your network interface; not sure which one is 5 GHz vs. 2.4 GHz.

I'm running @asvio's code with non-ct ath10k firmware:

root@NineNet:~# uptime
 16:57:28 up  3:10,  load average: 0.00, 0.03, 0.01
root@NineNet:~# lsmod | grep ath10k
ath                    24576  1 ath10k_core
ath10k_core           368640  1 ath10k_pci
ath10k_pci             36864  0 
cfg80211              311296  3 ath10k_core,ath,mac80211
compat                 16384  3 ath10k_pci,mac80211,cfg80211,[permanent]
mac80211              561152  1 ath10k_core
root@NineNet:~# 
oot@NineNet:~# opkg list | grep ath10k
ath10k-board-qca9984 - 20220913-1
ath10k-firmware-qca9984 - 20220913-1
kmod-ath10k - 5.15.68+5.15.58-1-2
root@NineNet:~# 

make kernel_memuconfig -> Firmware -> ath10k-firmware-qca9984 -- select to '*', deselect ath10k-firmware-qca9984-ct just below it.

back up one 'Exit' to the main menu, then:
Kernel modules -> Wireless drivers -- select kmod-ath10k, select Enable LED support just below, deselect kmod-ath10k-ct.

I can't wait to try Preemptible Kernel (Low-Latency Desktop)

Why not Fully Preemptible Kernel (RT), then?

I haven't found that option in this 5.15 kernel config menu - where is it? I've been blind before ...

Here you go:

CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
CONFIG_PREEMPT_RT_FULL=y

Not sure if it's supported. It is not in the openwrt-22.03 trunk, which is the one I use.

Thanks!

Last I heard the ARM version was still being integrated into the kernel - I'll try to check if those CONFIG_ defines are generic or x86 / amd64 -specific.

Thanks again,
M.

1 Like

@asvio - had a crash almost exactly 7 hours after boot; nothing experimental, no kernel scheduler changes ... just a bit trimmed down from what you gave me.

EDIT - I did enable ath10k firmware (not -ct) ... maybe I'll un-do that change.

and no kerneloops, syslog. it seemed hung for a minute - 5G Hz radio down first, then 2.4.

I tried to get in to dump syslog but it was too far down.

iperf3 wlan ->lan. ax210 wlan 160mhz wifi5 on r7800

C:\Aplicaciones\UTILIDADES\iperf-3.1.3-win64>iperf3 -c 192.168.1.2 -i 60 -t 120 -f M -P 1
Connecting to host 192.168.1.2, port 5201
[  4] local 192.168.1.10 port 10204 connected to 192.168.1.2 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-60.00  sec  3.33 GBytes  56.8 MBytes/sec
[  4]  60.00-120.00 sec  3.27 GBytes  55.9 MBytes/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-120.00 sec  6.60 GBytes  56.3 MBytes/sec                  sender
[  4]   0.00-120.00 sec  6.60 GBytes  56.3 MBytes/sec                  receiver

iperf Done.

C:\Aplicaciones\UTILIDADES\iperf-3.1.3-win64>iperf3 -c 192.168.1.2 -i 60 -t 120 -f M -P 2
Connecting to host 192.168.1.2, port 5201
[  4] local 192.168.1.10 port 10311 connected to 192.168.1.2 port 5201
[  6] local 192.168.1.10 port 10312 connected to 192.168.1.2 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-60.00  sec  2.30 GBytes  39.3 MBytes/sec
[  6]   0.00-60.00  sec  2.21 GBytes  37.8 MBytes/sec
[SUM]   0.00-60.00  sec  4.51 GBytes  77.0 MBytes/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]  60.00-120.00 sec  2.38 GBytes  40.7 MBytes/sec
[  6]  60.00-120.00 sec  2.26 GBytes  38.5 MBytes/sec
[SUM]  60.00-120.00 sec  4.64 GBytes  79.2 MBytes/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-120.00 sec  4.68 GBytes  40.0 MBytes/sec                  sender
[  4]   0.00-120.00 sec  4.68 GBytes  40.0 MBytes/sec                  receiver
[  6]   0.00-120.00 sec  4.47 GBytes  38.1 MBytes/sec                  sender
[  6]   0.00-120.00 sec  4.47 GBytes  38.1 MBytes/sec                  receiver
[SUM]   0.00-120.00 sec  9.15 GBytes  78.1 MBytes/sec                  sender
[SUM]   0.00-120.00 sec  9.15 GBytes  78.1 MBytes/sec                  receiver

iperf Done.

C:\Aplicaciones\UTILIDADES\iperf-3.1.3-win64>iperf3 -c 192.168.1.2 -i 60 -t 120 -f M -P 10
Connecting to host 192.168.1.2, port 5201
[  4] local 192.168.1.10 port 10379 connected to 192.168.1.2 port 5201
[  6] local 192.168.1.10 port 10380 connected to 192.168.1.2 port 5201
[  8] local 192.168.1.10 port 10381 connected to 192.168.1.2 port 5201
[ 10] local 192.168.1.10 port 10382 connected to 192.168.1.2 port 5201
[ 12] local 192.168.1.10 port 10383 connected to 192.168.1.2 port 5201
[ 14] local 192.168.1.10 port 10384 connected to 192.168.1.2 port 5201
[ 16] local 192.168.1.10 port 10385 connected to 192.168.1.2 port 5201
[ 18] local 192.168.1.10 port 10386 connected to 192.168.1.2 port 5201
[ 20] local 192.168.1.10 port 10387 connected to 192.168.1.2 port 5201
[ 22] local 192.168.1.10 port 10388 connected to 192.168.1.2 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-60.00  sec   574 MBytes  9.56 MBytes/sec
[  6]   0.00-60.00  sec   572 MBytes  9.52 MBytes/sec
[  8]   0.00-60.00  sec   567 MBytes  9.45 MBytes/sec
[ 10]   0.00-60.00  sec   558 MBytes  9.29 MBytes/sec
[ 12]   0.00-60.00  sec   568 MBytes  9.47 MBytes/sec
[ 14]   0.00-60.00  sec   566 MBytes  9.44 MBytes/sec
[ 16]   0.00-60.00  sec   566 MBytes  9.44 MBytes/sec
[ 18]   0.00-60.00  sec   558 MBytes  9.30 MBytes/sec
[ 20]   0.00-60.00  sec   556 MBytes  9.26 MBytes/sec
[ 22]   0.00-60.00  sec   556 MBytes  9.27 MBytes/sec
[SUM]   0.00-60.00  sec  5.51 GBytes  94.0 MBytes/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]  60.00-120.01 sec   574 MBytes  9.57 MBytes/sec
[  6]  60.00-120.01 sec   572 MBytes  9.54 MBytes/sec
[  8]  60.00-120.01 sec   570 MBytes  9.50 MBytes/sec
[ 10]  60.00-120.01 sec   541 MBytes  9.02 MBytes/sec
[ 12]  60.00-120.01 sec   566 MBytes  9.44 MBytes/sec
[ 14]  60.00-120.01 sec   566 MBytes  9.43 MBytes/sec
[ 16]  60.00-120.01 sec   543 MBytes  9.05 MBytes/sec
[ 18]  60.00-120.01 sec   563 MBytes  9.38 MBytes/sec
[ 20]  60.00-120.01 sec   559 MBytes  9.31 MBytes/sec
[ 22]  60.00-120.01 sec   542 MBytes  9.04 MBytes/sec
[SUM]  60.00-120.01 sec  5.47 GBytes  93.3 MBytes/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-120.01 sec  1.12 GBytes  9.56 MBytes/sec                  sender
[  4]   0.00-120.01 sec  1.12 GBytes  9.56 MBytes/sec                  receiver
[  6]   0.00-120.01 sec  1.12 GBytes  9.53 MBytes/sec                  sender
[  6]   0.00-120.01 sec  1.12 GBytes  9.53 MBytes/sec                  receiver
[  8]   0.00-120.01 sec  1.11 GBytes  9.48 MBytes/sec                  sender
[  8]   0.00-120.01 sec  1.11 GBytes  9.48 MBytes/sec                  receiver
[ 10]   0.00-120.01 sec  1.07 GBytes  9.16 MBytes/sec                  sender
[ 10]   0.00-120.01 sec  1.07 GBytes  9.16 MBytes/sec                  receiver
[ 12]   0.00-120.01 sec  1.11 GBytes  9.45 MBytes/sec                  sender
[ 12]   0.00-120.01 sec  1.11 GBytes  9.45 MBytes/sec                  receiver
[ 14]   0.00-120.01 sec  1.11 GBytes  9.44 MBytes/sec                  sender
[ 14]   0.00-120.01 sec  1.11 GBytes  9.44 MBytes/sec                  receiver
[ 16]   0.00-120.01 sec  1.08 GBytes  9.24 MBytes/sec                  sender
[ 16]   0.00-120.01 sec  1.08 GBytes  9.24 MBytes/sec                  receiver
[ 18]   0.00-120.01 sec  1.09 GBytes  9.34 MBytes/sec                  sender
[ 18]   0.00-120.01 sec  1.09 GBytes  9.34 MBytes/sec                  receiver
[ 20]   0.00-120.01 sec  1.09 GBytes  9.29 MBytes/sec                  sender
[ 20]   0.00-120.01 sec  1.09 GBytes  9.29 MBytes/sec                  receiver
[ 22]   0.00-120.01 sec  1.07 GBytes  9.15 MBytes/sec                  sender
[ 22]   0.00-120.01 sec  1.07 GBytes  9.15 MBytes/sec                  receiver
[SUM]   0.00-120.01 sec  11.0 GBytes  93.6 MBytes/sec                  sender
[SUM]   0.00-120.01 sec  11.0 GBytes  93.6 MBytes/sec                  receiver

iperf Done.

and this one for stability...

C:\Aplicaciones\UTILIDADES\iperf-3.1.3-win64>iperf3 -c 192.168.1.2 -i 60 -t 120 -f M -P 50
Connecting to host 192.168.1.2, port 5201
[  4] local 192.168.1.10 port 10778 connected to 192.168.1.2 port 5201
[  6] local 192.168.1.10 port 10779 connected to 192.168.1.2 port 5201
[  8] local 192.168.1.10 port 10780 connected to 192.168.1.2 port 5201
[ 10] local 192.168.1.10 port 10781 connected to 192.168.1.2 port 5201
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
[SUM]   0.00-120.00 sec  10.8 GBytes  92.5 MBytes/sec                  sender
[SUM]   0.00-120.00 sec  10.8 GBytes  92.4 MBytes/sec                  receiver

iperf Done.

graphics

1 Like

As new user ia can only put one graph in post so....

1 Like

cpu 2 frecuency.....

@Mpilon I'm sorry to read this.
A question. did you keep the settings when installing new firmware?
If it was the case, save the current configuration, reset the configuration and start from scratch.
In April I began to have sporadic resets and by doing this they ended.

PD: As a new user I am limited to 3 replays per topic so I don't know until when I will be able to continue writing here. That's why I added this comment to this post.

PD2: Yesterday I compiled a new firmware with more packages to be able to have statistics, samba, ddns and wireguard. That is the version that I am using now and it has been active for more than 9 hours.


BusyBox v1.35.0 (2022-09-21 07:35:20 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r20732-2076fb591c
 -----------------------------------------------------
root@NAS:~# uname -a
Linux NAS 5.15.68 #0 SMP Wed Sep 21 07:35:20 2022 armv7l GNU/Linux
root@NAS:~# uptime
 08:46:52 up 10:52,  load average: 0.03, 0.01, 0.00
root@NAS:~#

2 Likes

Are all these tests with a version that includes my patches? Would you mind running some flent tests? Like rrul_be, tcp_ndown and tcp_nup?

I haven't used flent before. I'll do a test to see if I can get something that can be posted.
I'm usually a windows user....

As far as I know, it does include it.
I just have only compiled the code that @qosmio had developed until I cloned his branch. I don't have the ability to modify those lines of code... and I never will have it.

Can you execute the following command and paste the output here?

cat /sys/kernel/debug/ieee80211/*/aql_txq_limit