[edit] oops, wrong values, this should be the correct one
[edit2] hmm, just testing here and i can't move wireless for some reason, but i can move eth0 and 1:
Thanks @johnnysl for your help.
At first sight, it looks ok, less multicast TV macro-blocs when running wireless high-rate transfers (QoS is my next fight).
I'll perform wired speedtest later, and keep in touch.
Just wondering:
Thanks for that clarification !
I've noticed another strange behavior: the R7800 has a higher latency than my previouns WNDR3800. The ping for any remote destination is 0,6ms higher. It's also longer to answer ping request as you can see on my smokeping chart:
Do you think it's related to the SoC architecture or something like that ?
I must admit, that switching eth0 over to the 2nd core makes aria download way faster. Probably this is due to USB and wan have been sharing the same 1St core.
As far as I have found out, irq load is managed by apic that puts all hardware irq onto core0. The only way to balance the load is to use irqbalance package that is absent in lede
I made a rather rough first version: I disabled practically all optional functionality, opted to use the external glib2 (that adds a large package dependency) and disabled compilation of the UI, as that gave some errors on the first build attempts.
Below is what happened. I ran "oneshot IRQ balancing" and after a while it can be noticed that 27/qcom-pcie-msi, 31/eth1, 104/ath10k_pci got moved. So both fixed and wlan interrupts got split to different cores.
EDIT:
Would be great if somebody can figure out how to avoid the glib2 dependency. Sounds crazy to pull in a 900 kB library to get 3-4 list functions
When I set the configure options in Makefile to disable external glib2, I got errors during compilation. I did not look closer into them, yet, but just decided to use the external glib2 to get buildbot to compile the first versions...
I suppose it's better to exclude wifi affinity change, because sometimes it doesn't broadcast after reboot if it's balanced.
Ps I've put irqbalance into startup.
Update:
Wed Feb 8 02:42:05 2017 user.notice : IRQ 27 was BANNED.
Wed Feb 8 02:42:05 2017 daemon.warn irqbalance: WARNING: MSI interrupts found in /proc/interrupts
Wed Feb 8 02:42:05 2017 daemon.warn irqbalance: But none found in sysfs, you need to update your kernel
Wed Feb 8 02:42:05 2017 daemon.warn irqbalance: Until then, IRQs will be improperly classified
Updated: adm_dma should be excluded as well
Actually it seems that the most correct way is to put eth0 and eth1 onto core1 manually. Irqbalance leads to numerous issues
Yeah, that is the goal. I tried it yesterday, but like I said, I got some compilation errors. I wanted to quickly see it irqbalance works at all, so I switched it to use external glib2 for now.
But I will try to get the internal glib stub compiled.
[quote="jow, post:59, topic:285"]
just make it use its bundled glib-local which is merely a tiny stub adding a few linked list functions.
[/quote]Using the internal stub works ok by itself, but it looks like there are recent upstream commits that have bypassed the "external glib on/off" selection and force glib types to everywhere via glib.unix.h requirement https://github.com/Irqbalance/irqbalance/commit/d1993bcde2a524346a9508754671f096ec129ad1
I will try reverting that.
And I will file bug at upstream. It makes no sense to provide a config option and internal stub for glib, if that is overlooked in code.