cat /proc/interrupts
CPU0 CPU1
11: 1713742 1807882 GICv3 30 Level arch_timer
14: 0 0 GICv3 23 Level arm-pmu
15: 28089 0 GICv3 32 Level d0010600.spi
16: 145 0 GICv3 33 Level d0011000.i2c
18: 184 0 GICv3 44 Level d0012000.serial
19: 0 0 GICv3 45 Level d0012000.serial
20: 2925898 0 GICv3 74 Level eth0
21: 0 0 advk-RP 0 Edge pciehp
22: 0 0 GICv3 35 Level xhci-hcd:usb2
23: 24 0 GICv3 49 Level ehci_hcd:usb1
30: 69 0 GICv3 50 Level armada-37xx-rwtm-mailbox
31: 323582 0 GICv3 57 Level mmc1
32: 9760 0 GICv3 58 Level mmc0
33: 1669348 0 GICv3 61 Level advk-pcie
51: 2 0 GICv3 79 Level d0060900.xor
52: 2 0 GICv3 80 Level d0060900.xor
53: 6 0 GPIO2 5 Edge moxtet
54: 5 0 moxtet-peridot.1#0 8 Edge mv88e6xxx-d0032004.mdio-mii:10
59: 1779906 0 GICv3 77 Level eth1
63: 0 0 mv88e6xxx-g1 3 Edge mv88e6xxx-d0032004.mdio-mii:10-g1-atu-prob
65: 0 0 mv88e6xxx-g1 5 Edge mv88e6xxx-d0032004.mdio-mii:10-g1-vtu-prob
67: 5 0 mv88e6xxx-g1 7 Edge mv88e6xxx-d0032004.mdio-mii:10-g2
70: 2 0 mv88e6xxx-g2 1 Edge !soc!internal-regs@d0000000!mdio@32004!switch0@10!mdio:01
71: 2 0 mv88e6xxx-g2 2 Edge !soc!internal-regs@d0000000!mdio@32004!switch0@10!mdio:02
72: 0 0 mv88e6xxx-g2 3 Edge !soc!internal-regs@d0000000!mdio@32004!switch0@10!mdio:03
73: 0 0 mv88e6xxx-g2 4 Edge !soc!internal-regs@d0000000!mdio@32004!switch0@10!mdio:04
74: 0 0 mv88e6xxx-g2 5 Edge !soc!internal-regs@d0000000!mdio@32004!switch0@10!mdio:05
75: 0 0 mv88e6xxx-g2 6 Edge !soc!internal-regs@d0000000!mdio@32004!switch0@10!mdio:06
76: 0 0 mv88e6xxx-g2 7 Edge !soc!internal-regs@d0000000!mdio@32004!switch0@10!mdio:07
77: 0 0 mv88e6xxx-g2 8 Edge !soc!internal-regs@d0000000!mdio@32004!switch0@10!mdio:08
78: 1 0 mv88e6xxx-g2 9 Edge mv88e6xxx-d0032004.mdio-mii:10-serdes-9
84: 0 0 mv88e6xxx-g2 15 Edge mv88e6xxx-d0032004.mdio-mii:10-watchdog
85: 0 0 GPIO1 10 Edge d00d8000.sdhci cd
86: 0 0 GPIO2 20 Edge gpio-keys
87: 1669347 0 advk-MSI 1572864 Edge ath10k_pci
IPI0: 3793 3855 Rescheduling interrupts
IPI1: 170485 1559102 Function call interrupts
IPI2: 0 0 CPU stop interrupts
IPI3: 0 0 CPU stop (for crash dump) interrupts
IPI4: 0 0 Timer broadcast interrupts
IPI5: 0 0 IRQ work interrupts
IPI6: 0 0 CPU wake-up interrupts
Err:
Interrupts are not spread across two cores so it is more likely to saturate one core - CPU0.
root@turris:~# cat /proc/irq/20/smp_affinity
3
root@turris:~# cat /proc/irq/59/smp_affinity
3
root@turris:~# cat /proc/irq/default_smp_affinity
3
Changing eth0 IRQ to CPU1 seems to be good option - decrease latency about few ms and spread load more evenly.
echo 2 > /proc/irq/20/smp_affinity
(that is probably correct as I don’t have irqbalance installed)