0
votes

I want to load balance the interrupt (irq 75) on my virtual machine system. It has 64 bit redhat 5.8, kernel 2.6.18. There are 8 CPUs in the virtual machine.

When I run:

cat /proc/interrupts
 75:       9189   0   0   0   0   0   0   0   IO-APIC-level   eth0

I saw that the IRQ 75 is used only CPU0. Then I changed the smp_affinity for irq 75.

echo ff > /proc/irq/75/smp_affinity
cat /proc/irq/75/smp_affinity
00000000,00000000,00000000,00000000,00000000,00000000,00000000,000000ff

But I saw againg the interrupts for irq 75 were using CPU0 only.

 75:     157228   0   0   0   0   0   0   0   IO-APIC-level  eth0

There is no irq balancing between CPUs. I want to distrubute all interrupts (irq 75) to all CPUs, Am I doing something wrong?

2
Perhaps you ought to just run irqbalance...twalberg
I have also tried this, but nothing has changed. Interestingly, when I run the "service irqbalance start", a few seconds later irqbalance service stops automatically.Arda Demiray

2 Answers

2
votes

The value is in hex representation of bitmask, usually 64bit

  1. first stop irqbalance
  2. now, try (bit pattern: 10 = 0x2 in hex representation)

echo 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000002 > /proc/irq/75/smp_affinity

this should work if you have 2 core processor.

0
votes

If you are using vmware, change the ethernet driver to VMXNET3, you will have interrupts like following:

cat /proc/interrupts | grep eth3
57:          0          0          0          0          5  101198492          0          0   PCI-MSI-edge      eth3-rxtx-0
58:          0          0          0          0          0          2   82962355          0   PCI-MSI-edge      eth3-rxtx-1
59:          0          0          0          0          0          0          1  112986304   PCI-MSI-edge      eth3-rxtx-2
60:  120252394          0          0          0          0          0          0          1   PCI-MSI-edge      eth3-rxtx-3
61:          1  118585532          0          0          0          0          0          0   PCI-MSI-edge      eth3-rxtx-4
62:          0          1  151440277          0          0          0          0          0   PCI-MSI-edge      eth3-rxtx-5
63:          0          0          1   94639274          0          0          0          0   PCI-MSI-edge      eth3-rxtx-6
64:          0          0          0          1   63577471          0          0          0   PCI-MSI-edge      eth3-rxtx-7
65:          0          0          0          0          0          0          0          0   PCI-MSI-edge      eth3-event-8

You will have different "rxtx" queues, each assigned to a CPU. In my case the load became balanced among all CPUs.