I installed and ran "irqbalance", but it doesn't seem to work as it should.
I also turned on "Packet Steering", but without any major changes.
System: SNAPSHOT-r24733-c1ad78318c
root@QHora-301W:~# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
9: 0 0 0 0 GIC-0 39 Level arch_mem_timer
13: 20538 16379 27975 18118 GIC-0 20 Level arch_timer
16: 0 0 0 0 GIC-0 239 Level bam_dma
17: 88480 0 0 0 GIC-0 270 Level bam_dma
18: 0 0 0 0 GIC-0 178 Level bam_dma
19: 2 0 0 0 GIC-0 354 Edge smp2p
20: 6 0 0 0 GIC-0 340 Level msm_serial0
21: 176972 0 0 0 GIC-0 127 Level 78b5000.spi
23: 0 0 0 0 GIC-0 216 Level 4a9000.thermal-sensor
24: 0 0 0 0 GIC-0 35 Edge wdt_bark
25: 16407 0 0 0 GIC-0 155 Level mmc0
26: 2 0 0 0 GIC-0 170 Level 7824900.mmc
27: 0 0 0 0 GIC-0 357 Edge q6v5 wdog
28: 0 0 0 0 pmic_arb 51380237 Edge pm-adc5
29: 37 0 0 0 GIC-0 47 Edge cpr3
30: 0 0 0 0 smp2p 0 Edge q6v5 fatal
31: 1 0 0 0 smp2p 1 Edge q6v5 ready
32: 0 0 0 0 smp2p 2 Edge q6v5 handover
33: 0 0 0 0 smp2p 3 Edge q6v5 stop
34: 0 0 0 0 msmgpio 67 Edge keys
35: 65564 0 0 0 GIC-0 377 Level edma_txcmpl
36: 0 0 0 0 GIC-0 385 Level edma_rxfill
37: 170475 0 0 0 GIC-0 393 Level edma_rxdesc
38: 0 0 0 0 GIC-0 376 Level edma_misc
39: 0 0 0 0 GIC-0 172 Level xhci-hcd:usb1
40: 0 0 0 0 GIC-0 131 Level xhci-hcd:usb3
41: 64 0 0 0 GIC-0 353 Edge glink-native
42: 5 0 0 0 GIC-0 348 Edge ce0
43: 78928 0 0 0 GIC-0 347 Edge ce1
44: 4345 0 0 0 GIC-0 346 Edge ce2
45: 857 0 0 0 GIC-0 343 Edge ce3
46: 0 0 0 0 GIC-0 443 Edge ce5
47: 1039 0 0 0 GIC-0 72 Edge ce7
48: 0 0 0 0 GIC-0 334 Edge ce9
49: 0 0 0 0 GIC-0 333 Edge ce10
50: 0 0 0 0 GIC-0 69 Edge ce11
51: 14700 0 0 0 GIC-0 189 Edge wbm2host-tx-completions-ring1
52: 0 0 0 0 GIC-0 323 Edge reo2ost-exception
53: 3214 0 0 0 GIC-0 322 Edge wbm2host-rx-release
54: 0 0 0 0 GIC-0 209 Edge rxdma2host-destination-ring-mac1
55: 0 0 0 0 GIC-0 212 Edge host2rxdma-host-buf-ring-mac1
56: 11828 0 0 0 GIC-0 190 Edge wbm2host-tx-completions-ring2
57: 0 0 0 0 msmgpio 57 Edge keys
58: 0 0 0 0 GIC-0 211 Edge rxdma2host-destination-ring-mac3
59: 1 0 0 0 GIC-0 235 Edge host2rxdma-host-buf-ring-mac3
60: 8521 0 0 0 GIC-0 191 Edge wbm2host-tx-completions-ring3
61: 0 0 0 0 GIC-0 210 Edge rxdma2host-destination-ring-mac2
62: 0 0 0 0 GIC-0 215 Edge host2rxdma-host-buf-ring-mac2
63: 50 0 0 0 GIC-0 321 Edge reo2host-status
64: 22308 0 0 0 GIC-0 261 Edge ppdu-end-interrupts-mac1
65: 1 0 0 0 GIC-0 255 Edge rxdma2host-monitor-status-ring-mac1
66: 6571 0 0 0 GIC-0 263 Edge ppdu-end-interrupts-mac3
67: 1 0 0 0 GIC-0 260 Edge rxdma2host-monitor-status-ring-mac3
68: 0 0 0 0 GIC-0 262 Edge ppdu-end-interrupts-mac2
69: 0 0 0 0 GIC-0 256 Edge rxdma2host-monitor-status-ring-mac2
70: 9142 0 0 0 GIC-0 267 Edge reo2host-destination-ring1
71: 8364 0 0 0 GIC-0 268 Edge reo2host-destination-ring2
72: 10292 0 0 0 GIC-0 271 Edge reo2host-destination-ring3
73: 14037 0 0 0 GIC-0 320 Edge reo2host-destination-ring4
IPI0: 1525 2122 2327 2225 Rescheduling interrupts
IPI1: 9998 113878 106273 172117 Function call interrupts
IPI2: 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 CPU stop (for crash dump) interrupts
IPI4: 0 0 0 0 Timer broadcast interrupts
IPI5: 538 271 285 339 IRQ work interrupts
IPI6: 0 0 0 0 CPU wake-up interrupts
Err: 0
I added it to the startup script:
cat > /tmp/set-ipq807-affinity.sh << 'EOF'
#!/bin/sh
set_affinity() {
irq=$(awk "/$1/{ print substr(\$1, 1, length(\$1)-1); exit }" /proc/interrupts)
[ -n "$irq" ] && echo $2 > /proc/irq/$irq/smp_affinity
logger -t /tmp/set-ipq807-affinity.sh "Setting Affinity: $1 ($irq) to $2"
}
#assign 4 rx interrupts to each core
set_affinity 'reo2host-destination-ring1' 1
set_affinity 'reo2host-destination-ring2' 2
set_affinity 'reo2host-destination-ring3' 4
set_affinity 'reo2host-destination-ring4' 8
#assign 3 tcl completions to last 3 cores
set_affinity 'wbm2host-tx-completions-ring1' 2
set_affinity 'wbm2host-tx-completions-ring2' 4
set_affinity 'wbm2host-tx-completions-ring3' 8
#assign 3 ppdu mac interrupts to last 3 cores
set_affinity 'ppdu-end-interrupts-mac1' 2
set_affinity 'ppdu-end-interrupts-mac2' 4
set_affinity 'ppdu-end-interrupts-mac3' 8
#assign lan/wan to core 4
set_affinity 'edma_txcmpl' 8
set_affinity 'edma_rxfill' 8
set_affinity 'edma_rxdesc' 8
set_affinity 'edma_misc' 8
exit 0
EOF
chmod 777 /tmp/set-ipq807-affinity.sh
/tmp/set-ipq807-affinity.sh
Is it possible to do more?