rb4011 bad irq to cpu affinity

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.
Screenshot_1.png
Screenshot_2.png

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