Why irq’s almost of all devices bound to cpu0? This is normal for rb4011?
I have performance issue with this device, all hw processing done on single core - this is not right. Only sw services distributed across all cores.


It’s actually a bug in how GUIs (both winbox and webfig) handles missing information. If you check IRQ distribution in CLI, you may see something like this:
[device] > /system/resource/irq/print
Flags: o - READ-ONLY
Columns: IRQ, USERS, CPU, ACTIVE-CPU, COUNT
# IRQ USERS CPU ACTIVE-CPU COUNT
0 o 20 qca_crypto auto 0
1 22 bam_dma auto 0 10 990
2 23 78b5000.spi auto 1 22 010
3 o 24 edma_eth_tx0 auto 951 446
4 o 25 edma_eth_tx1 auto 524 925
5 o 26 edma_eth_tx2 auto 512 218
6 o 27 edma_eth_tx3 auto 1 086 428
7 o 40 edma_eth_rx0 auto 27 348 650
8 o 41 edma_eth_rx1 auto 9 941 491
9 o 42 edma_eth_rx2 auto 33 918 036
10 o 43 edma_eth_rx3 auto 15 507 776
11 o 57 qca_crypto auto 0
12 74 wlan_ahb auto 2 55 721 579
13 91 wlan_ahb auto 3 35 310 413
14 92 arm-pmu auto 0 0
15 99 watchdog-bark auto 1 0
16 100 wlan_pci auto 2 45 915 858
17 101 aerdrv auto 3 0
18 102 usb1 auto 0 0
As you can see, quite a few interrupt “users” don’t have “active CPU” displayed … and the reason is that there are interrupt “users” with a copy per CPU (device, where I executed the command, is Audience with 4 CPU cores). On my list above those are edma_eth_rxX and edma_eth_txX … which all show “active CPU” as 0 when I look at them using winbox (version 3.41 in my case). The same happens when using webfig (version 7.17 which is native to the device being looked at).
On your screenshot those are al-crypto-comp-X, al-eth-switch0-0-rx-X, al-eth-switch0-0-tx-X, etc.
I fired routeros x86 instance with free license for investigation the issue. On x86 i see same thing for irq’s with “readonly” flag, and this irq’s also stick to cpu0. All other irq’s, that can be changed spreaded across all cores.
Also i noticed that high bandwidth on etherX ports hits only cpu0 and max’s it out (rb4011).
This is output from x86, /system/resource/irq/print
Flags: o - READ-ONLY
Columns: IRQ, USERS, CPU, ACTIVE-CPU, COUNT
# IRQ USERS CPU ACTIVE-CPU COUNT
0 9 acpi auto 0 0
1 16 usb1 auto 1 100 000
2 23 usb2 auto 2 32
3 24 dmar0 auto 3 0
4 25 dmar1 auto 0 0
5 26 PCIe BW notif auto 1 0
6 27 PCIe BW notif auto 2 0
7 28 PCIe BW notif auto 3 0
8 29 PCIe BW notif auto 0 0
9 o 30 nvme0q0 auto 354
10 o 31 nvme0q1 auto 189
11 o 32 nvme0q2 auto 4 802
12 o 33 nvme0q3 auto 152
13 o 34 nvme0q4 auto 132
14 35 xhci_hcd auto 1 0
15 36 eth0-tx-0 auto 2 31 786
16 37 eth0-rx-1 auto 3 1 905 087
17 38 eth0-rx-2 auto 0 63 330
18 39 eth0-rx-3 auto 1 4 826
19 40 eth0-rx-4 auto 2 9 325
20 41 eth1-tx-0 auto 3 3
21 42 eth1-rx-1 auto 0 3
22 43 eth1-rx-2 auto 1 3
23 44 eth1-rx-3 auto 2 3
24 45 eth1-rx-4 auto 3 3
25 46 eth2-tx-0 auto 0 3
26 47 eth2-rx-1 auto 1 3
27 48 eth2-rx-2 auto 2 3
28 49 eth2-rx-3 auto 3 3
29 50 eth2-rx-4 auto 0 3
30 51 eth4-tx-0 auto 1 150 641 997
31 52 eth4-rx-1 auto 2 368 756 741
32 53 eth4-rx-2 auto 3 413 173 617
33 54 eth4-rx-3 auto 0 354 794 580
34 55 eth4-rx-4 auto 1 413 618 796
35 56 eth5-tx-0 auto 2 3
36 57 eth5-rx-1 auto 3 3
37 58 eth5-rx-2 auto 0 3
38 59 eth5-rx-3 auto 1 3
39 60 eth5-rx-4 auto 2 3
40 61 eth6-tx-0 auto 3 3
41 62 eth6-rx-1 auto 0 3
42 63 eth6-rx-2 auto 1 3
43 64 eth6-rx-3 auto 2 3
44 65 eth6-rx-4 auto 3 3
45 66 eth7-tx-0 auto 0 3
46 67 eth7-rx-1 auto 1 3
47 68 eth7-rx-2 auto 2 3
48 69 eth7-rx-3 auto 3 3
49 70 eth7-rx-4 auto 0 3