<p dir="ltr"><br>
On Apr 9, 2015 8:20 AM, "John Moser" <<a href="mailto:john.r.moser@gmail.com">john.r.moser@gmail.com</a>> wrote:<br>
><br>
> IRQbalance keeps all of the IRQ requests from backing up on a single<br>
> CPU. It tries to balance this out in an intelligent way accross all the<br>
> CPUs and, when possible, puts the IRQ processing as close to the process<br>
> as possible.<br>
><br>
> On NUMA systems, you may want numad. I believe irqbalance exits if it<br>
> detects NUMA.<br>
><br>
I see. Splitting interrupt handling evenly between CPUs. That is of course, there are multiple CPUs. How do I know my kernel is using irqbalance?<br>
> On 04/09/2015 08:14 AM, Istimsak Abdulbasir wrote:<br>
> > What is the irqbalance and what was the reason for using it?<br>
> ><br>
> > On Apr 9, 2015 8:09 AM, "Daniel J Blueman" <<a href="mailto:daniel@quora.org">daniel@quora.org</a><br>
> > <mailto:<a href="mailto:daniel@quora.org">daniel@quora.org</a>>> wrote:<br>
> ><br>
> > Checked with Vivid beta on Intel i5 hardware, and it seems interrupt<br>
> > distribution doesn't change when I boot with irqbalance running [1],<br>
> > or after purging it and rebooting [2].<br>
> ><br>
> > Finally, it can't second guess MSI interrupt setup better than the<br>
> > APIC driver and adds a unnecessary layer of 'intelligence'. I don't<br>
> > see any case common enough to warrant deploying it by default.<br>
> ><br>
> > Anyone against removing it?<br>
> ><br>
> > Dan<br>
> ><br>
> > -- [1]<br>
> ><br>
> > root@nuc:~# cat /proc/interrupts<br>
> > CPU0 CPU1 CPU2 CPU3<br>
> > 0: 18 0 0 0 IR-IO-APIC-edge<br>
> > timer<br>
> > 1: 1 1 0 1 IR-IO-APIC-edge<br>
> > i8042<br>
> > 7: 9 0 0 0 IR-IO-APIC-edge<br>
> > 8: 0 0 0 1 IR-IO-APIC-edge<br>
> > rtc0<br>
> > 9: 3 0 0 0<br>
> > IR-IO-APIC-fasteoi acpi<br>
> > 12: 1 2 1 0 IR-IO-APIC-edge<br>
> > i8042<br>
> > 23: 11 1 15 6 IR-IO-APIC<br>
> > 23-fasteoi ehci_hcd:usb3<br>
> > 40: 0 0 0 0 DMAR_MSI-edge<br>
> > dmar0<br>
> > 41: 0 0 0 0 DMAR_MSI-edge<br>
> > dmar1<br>
> > 42: 0 0 0 0 IR-PCI-MSI-edge<br>
> > PCIe PME<br>
> > 43: 0 0 0 0 IR-PCI-MSI-edge<br>
> > PCIe PME<br>
> > 44: 87 25 95 23 IR-PCI-MSI-edge<br>
> > xhci_hcd<br>
> > 45: 2740 4911 4405 14870 IR-PCI-MSI-edge<br>
> > 0000:00:1f.2<br>
> > 46: 10 10 2504 3 IR-PCI-MSI-edge<br>
> > eth0<br>
> > 47: 12 1 1 0 IR-PCI-MSI-edge<br>
> > mei_me<br>
> > 48: 8 14 3 1 IR-PCI-MSI-edge<br>
> > iwlwifi<br>
> > 49: 496 594 290 331 IR-PCI-MSI-edge<br>
> > i915<br>
> > 50: 197 80 4 39 IR-PCI-MSI-edge<br>
> > snd_hda_intel<br>
> > 51: 721 0 0 28 IR-PCI-MSI-edge<br>
> > snd_hda_intel<br>
> > NMI: 1 1 0 1 Non-maskable<br>
> > interrupts<br>
> > LOC: 30046 19983 13391 18318 Local timer<br>
> > interrupts<br>
> > SPU: 0 0 0 0 Spurious interrupts<br>
> > PMI: 1 1 0 1 Performance<br>
> > monitoring interrupts<br>
> > IWI: 0 0 0 0 IRQ work interrupts<br>
> > RTR: 2 0 0 0 APIC ICR read retries<br>
> > RES: 943 1130 618 693 Rescheduling<br>
> > interrupts<br>
> > CAL: 840 699 674 747 Function call<br>
> > interrupts<br>
> > TLB: 198 205 286 1241 TLB shootdowns<br>
> > TRM: 0 0 0 0 Thermal event<br>
> > interrupts<br>
> > THR: 0 0 0 0 Threshold APIC<br>
> > interrupts<br>
> > MCE: 0 0 0 0 Machine check<br>
> > exceptions<br>
> > MCP: 4 4 4 4 Machine check polls<br>
> > HYP: 0 0 0 0 Hypervisor callback<br>
> > interrupts<br>
> > ERR: 9<br>
> > MIS: 0<br>
> ><br>
> > -- [2]<br>
> ><br>
> > root@nuc:~# cat /proc/interrupts<br>
> > CPU0 CPU1 CPU2 CPU3<br>
> > 0: 20 0 0 0 IR-IO-APIC-edge<br>
> > timer<br>
> > 1: 1 0 1 1 IR-IO-APIC-edge<br>
> > i8042<br>
> > 7: 11 0 0 0 IR-IO-APIC-edge<br>
> > 8: 0 0 0 1 IR-IO-APIC-edge<br>
> > rtc0<br>
> > 9: 3 0 0 0<br>
> > IR-IO-APIC-fasteoi acpi<br>
> > 12: 3 0 1 0 IR-IO-APIC-edge<br>
> > i8042<br>
> > 23: 15 10 10 0 IR-IO-APIC<br>
> > 23-fasteoi ehci_hcd:usb3<br>
> > 40: 0 0 0 0 DMAR_MSI-edge<br>
> > dmar0<br>
> > 41: 0 0 0 0 DMAR_MSI-edge<br>
> > dmar1<br>
> > 42: 0 0 0 0 IR-PCI-MSI-edge<br>
> > PCIe PME<br>
> > 43: 0 0 0 0 IR-PCI-MSI-edge<br>
> > PCIe PME<br>
> > 44: 48 9 98 11 IR-PCI-MSI-edge<br>
> > xhci_hcd<br>
> > 45: 3592 754 4633 1272 IR-PCI-MSI-edge<br>
> > 0000:00:1f.2<br>
> > 46: 37 23 89 13 IR-PCI-MSI-edge<br>
> > eth0<br>
> > 47: 14 0 0 0 IR-PCI-MSI-edge<br>
> > mei_me<br>
> > 48: 291 0 4 25 IR-PCI-MSI-edge<br>
> > snd_hda_intel<br>
> > 49: 12 16 6 0 IR-PCI-MSI-edge<br>
> > iwlwifi<br>
> > 50: 246 132 154 288 IR-PCI-MSI-edge<br>
> > i915<br>
> > 51: 25 673 13 42 IR-PCI-MSI-edge<br>
> > snd_hda_intel<br>
> > NMI: 0 0 0 0 Non-maskable<br>
> > interrupts<br>
> > LOC: 1041 1680 928 964 Local timer<br>
> > interrupts<br>
> > SPU: 0 0 0 0 Spurious interrupts<br>
> > PMI: 0 0 0 0 Performance<br>
> > monitoring interrupts<br>
> > IWI: 0 0 1 0 IRQ work interrupts<br>
> > RTR: 3 0 0 0 APIC ICR read retries<br>
> > RES: 374 517 311 305 Rescheduling<br>
> > interrupts<br>
> > CAL: 638 640 679 609 Function call<br>
> > interrupts<br>
> > TLB: 1628 93 49 110 TLB shootdowns<br>
> > TRM: 0 0 0 0 Thermal event<br>
> > interrupts<br>
> > THR: 0 0 0 0 Threshold APIC<br>
> > interrupts<br>
> > MCE: 0 0 0 0 Machine check<br>
> > exceptions<br>
> > MCP: 2 2 2 2 Machine check polls<br>
> > HYP: 0 0 0 0 Hypervisor callback<br>
> > interrupts<br>
> > ERR: 11<br>
> > MIS: 0<br>
> > --<br>
> > Daniel J Blueman<br>
> ><br>
> > --<br>
> > Ubuntu-devel-discuss mailing list<br>
> > <a href="mailto:Ubuntu-devel-discuss@lists.ubuntu.com">Ubuntu-devel-discuss@lists.ubuntu.com</a><br>
> > <mailto:<a href="mailto:Ubuntu-devel-discuss@lists.ubuntu.com">Ubuntu-devel-discuss@lists.ubuntu.com</a>><br>
> > Modify settings or unsubscribe at:<br>
> > <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss">https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss</a><br>
> ><br>
> ><br>
> ><br>
><br>
> --<br>
> Ubuntu-devel-discuss mailing list<br>
> <a href="mailto:Ubuntu-devel-discuss@lists.ubuntu.com">Ubuntu-devel-discuss@lists.ubuntu.com</a><br>
> Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss">https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss</a><br>
</p>