Why are IRQs unbalanced in my multi core, single socket system?
Issue
-
Why are most IRQs being handled by the same logical core?
-
Why aren't IRQs balanced across all available logical cores?
$ cat proc/interrupts
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
0: 1595 0 0 0 0 0 0 0 IR-IO-APIC-edge timer
1: 0 0 0 0 0 0 0 0 IR-IO-APIC-edge i8042
3: 13 0 0 0 0 0 0 0 IR-IO-APIC-edge serial
8: 1 0 0 0 0 0 0 0 IR-IO-APIC-edge rtc0
9: 0 0 0 0 0 0 0 0 IR-IO-APIC-fasteoi acpi
16: 47 0 0 0 0 0 0 0 IR-IO-APIC-fasteoi ehci_hcd:usb1
20: 21 0 0 0 0 0 0 0 IR-IO-APIC-fasteoi ehci_hcd:usb2, uhci_hcd:usb4, uhci_hcd:usb5
21: 0 0 0 0 0 0 0 0 IR-IO-APIC-fasteoi uhci_hcd:usb6
22: 47 0 0 0 0 0 0 0 IR-IO-APIC-fasteoi uhci_hcd:usb3
24: 361539686 0 0 0 0 0 0 0 IR-IO-APIC-fasteoi pcimb
28: 1116097 0 0 0 0 0 0 0 IR-IO-APIC-fasteoi ioc0
[...]
59: 34352672 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-0
60: 17403522 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-1
61: 1597432 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-2
62: 1986633 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-3
63: 961736 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-4
64: 6501632 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-5
65: 196452 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-6
66: 2201116 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth0-7
68: 1384520 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-0
69: 758 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-1
70: 1067 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-2
71: 850969 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-3
72: 24995 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-4
73: 183622 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-5
74: 654621 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-6
75: 6751 0 0 0 0 0 0 0 IR-PCI-MSI-edge eth1-7
[...]
Environment
- Red Hat Enterprise Linux.
- Multi core, single socket system (or multi socket system with one socket populated only).
- Shared cache across all cores in the socket (single cache domain).
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.