If the settings between non-NSS and NSS based firmware on a r7800 are the same - don’t see any reason that they would behave differently. I’m stumped.
@ACwifidude are these warnings normal when I try to build your repo?
builder@openwrt-compile-ng:~/openwrt-nss$ make world -j 5
WARNING: Makefile 'package/qca/qca-nss-drv/Makefile' has a dependency on 'kmod-qca-nss-dp', which does not exist
WARNING: Makefile 'package/qca/qca-nss-ecm/Makefile' has a dependency on 'kmod-qca-ovsmgr', which does not exist
WARNING: Makefile 'package/qca/qca-nss-ecm/Makefile' has a dependency on 'kmod-qca-ovsmgr', which does not exist
WARNING: Makefile 'package/qca/qca-nss-ecm/Makefile' has a dependency on 'kmod-qca-ovsmgr', which does not exist
WARNING: Makefile 'package/qca/qca-nss-ecm/Makefile' has a dependency on 'kmod-qca-hyfi-bridge', which does not exist
WARNING: Makefile 'package/qca/qca-nss-ecm/Makefile' has a dependency on 'kmod-qca-mcs', which does not exist
WARNING: Makefile 'package/qca/qca-nss-ecm/Makefile' has a dependency on 'kmod-qca-ovsmgr', which does not exist
WARNING: Makefile 'package/qca/qca-nss-ecm/Makefile' has a dependency on 'kmod-qca-hyfi-bridge', which does not exist
WARNING: Makefile 'package/qca/qca-nss-ecm/Makefile' has a dependency on 'kmod-qca-mcs', which does not exist
make[1] world
yes it's normal
Yep - normal. Don’t expect those packages will make it in - probably safe to remove those requirements from the makefile so that the log is not spammed with those error messages.
I've been doing some performance testing.
I have an iperf3 server running on a wired-ethernet Ubuntu server. And an iperf3 client running on a Wifi connected Ubuntu server on a laptop.
Looking at CPU stats on the router, I've noticed that softirqs are being processed only on core #0 during iperf3 runs.
I have enabled irqbalance, but interrupts don't appear to be getting spread across CPU cores.
If I do ps | grep irqbalance
I see;
root@OpenWrt:~# ps | grep irqbalance
25323 root 972 S /usr/sbin/irqbalance -f -t 10
27611 root 972 S /usr/sbin/irqbalance
Here is what I see in /proc/interrupts;
cat /proc/interrupts
root@OpenWrt:~# cat /proc/interrupts
CPU0 CPU1
16: 11559287 18104258 GIC-0 18 Edge gp_timer
18: 53 0 GIC-0 51 Edge qcom_rpm_ack
19: 0 0 GIC-0 53 Edge qcom_rpm_err
20: 0 0 GIC-0 54 Edge qcom_rpm_wakeup
26: 0 0 GIC-0 241 Level ahci[29000000.sata]
27: 0 0 GIC-0 210 Edge tsens_interrupt
30: 295950 15746 GIC-0 202 Level adm_dma
33: 256593932 0 GIC-0 245 Level nss
34: 0 15021324 GIC-0 264 Level nss_queue1
35: 121836038 0 GIC-0 246 Level nss
36: 0 0 GIC-0 265 Level nss_queue1
37: 0 0 GIC-0 130 Level bam_dma
38: 0 0 GIC-0 128 Level bam_dma
40: 0 0 PCI-MSI 0 Edge aerdrv
42: 0 0 PCI-MSI 134217728 Edge aerdrv
43: 13 0 GIC-0 184 Level msm_serial0
44: 2 0 msmgpio 6 Edge keys
45: 2 0 msmgpio 54 Edge keys
46: 2 0 msmgpio 65 Edge keys
47: 12270 0 GIC-0 142 Level xhci-hcd:usb1
48: 0 0 GIC-0 237 Level xhci-hcd:usb3
49: 104049762 0 PCI-MSI 524288 Edge ath10k_pci
50: 18077902 0 PCI-MSI 134742016 Edge ath10k_pci
IPI0: 0 0 CPU wakeup interrupts
IPI1: 0 0 Timer broadcast interrupts
IPI2: 1519375 19512187 Rescheduling interrupts
IPI3: 592 822 Function call interrupts
IPI4: 0 0 CPU stop interrupts
IPI5: 2112 2230 IRQ work interrupts
IPI6: 0 0 completion interrupts
Err: 0
Shouldn't interrupts be spread amongst cpu0 and cpu1 for the ath10k_pci devices?
Why aren't interrupts being spread evenly among cpu0 and cpu1 for the ath10k_pci devices?
Unfortunately wireless is CPU intensive (and sticks to the CPU that scheduled it) and is not fully offloaded by NSS. Irqbalance does not change the behavior of wireless and its tendency to stick to a single core during heavy loads.
Possible fixes:
-
Ipq8064 devices for some reason don’t like the latest wireless NSS offloading packages - I reverted the 5.4=>5.8 patch to get wireless to work for those devices. The wireless patches need some debugging to figure out the issue.
-
There are other creative ways to get after it - here was one proposed patch for another type of device:
@ACwifidude
I want try your latest repo for my ea7500 v1
but it looks no ea7500 in the list of "ipq806x: NSS Hardware Offloading .dts and .dtsi changes"
is that ok?
thanks
I’ve been working on simplifying all the work - I made the changes in the eax500 .dtsi file (both the ea7500 v1 and ea8500 include this file and seem to like the same settings).
ea7500 v1 should have the same settings as before. Let me know how it goes!
Got it !
thank you
@ACwifidude Thanks for your thoughtful and thorough response.
I'm glad to hear that what I'm seeing is not out of the realm of working-as-designed.
So far everything else in my build, based on your repo, seems to be working well.
I tested your firmware 20210118 ea7500 and ea8500,both auto-reboot after 10 secs ,after boot 3 times,switch to another firmware automatically
I managed to build custom build. I used default settings from the repo just added different packages. My C2600 booted whithout Wifi (there is no fw includent as i saw later). However i had issues with my eth1 (wan). I couldn't obtain DHCP address. Anyone had such issue? Could it be related to nss somehow?
fyi: R7800-20210118-MasterNSS
runs as stable for me as it did before 20210112
.
If so, does anyone have any ideas about my loopback problem? (ddns from internal incl. port-forwarding)
Thanks
Loopback problem is a ipq8064 .dts issue. Should be an easy fix.
R7800 and NBG6817 are both ipq8065 and are unaffected.
Having a error when trying to build
error: cannot rebase: You have unstaged changes.
error: Please commit or stash them.
Only that I experienced it too, on R7800, and had to revert to hnyman because it affected crucial functionality. Unable to access my FTP server by its "outside name" while inside the LAN.
So, this is incorrect: "R7800 and NBG6817 are both ipq8065 and are unaffected."
If you made any changes it’ll get angry and give you that error.
Try:
git status
That’ll show any and all files that have changed that haven’t been committed.
You are right - read over the post too fast. I don’t have a fix for internal sites. There has to be some sort of firewall configuration tweak that makes it work.
Only thing I've done is made a diffconfig
On branch kernel5.4-nss-qsdk10.0
Your branch is up to date with 'origin/kernel5.4-nss-qsdk10.0'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: diffconfig
no changes added to commit (use "git add" and/or "git commit -a")
Good to know that it is not my configuration that is preventing it from working. Too bad there that this is no solution there. @kesagatame @ACwifidude