<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>