0

I have create m4.x2large instance with SR-IOV enabled and running some sipp performance testing and i have notice on top command ksoftirq/5 is 100% and it stick to CPU5 all other CPUs has 0% load, I want to share irq across all 8 CPUs

[root@ip-10-100-2-169 irqbalance]# cat /proc/interrupts | grep eth0
 97:       2119          0          0          0    6581710          0          0          0  xen-pirq-msi-x     eth0-TxRx-0
 98:        576         87          0          0          0    1780987          0          0  xen-pirq-msi-x     eth0-TxRx-1
 99:         34          0          0          0          0          0          0          0  xen-pirq-msi-x     eth0

mpstat ( you can see CPU5 )

[root@ip-10-100-2-169 irqbalance]# mpstat -P ALL
Linux 3.10.0-514.el7.x86_64 (ip-10-100-2-169.us-west-2.compute.internal)    03/07/2017  _x86_64_    (8 CPU)

10:33:15 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
10:33:15 PM  all    0.11    0.00    0.08    0.01    0.00    2.90    0.17    0.00    0.00   96.74
10:33:15 PM    0    0.07    0.00    0.12    0.01    0.00    0.00    0.12    0.00    0.00   99.68
10:33:15 PM    1    0.18    0.00    0.05    0.04    0.00    0.00    0.15    0.00    0.00   99.58
10:33:15 PM    2    0.08    0.00    0.04    0.01    0.00    0.00    0.18    0.00    0.00   99.69
10:33:15 PM    3    0.05    0.00    0.03    0.00    0.00    0.00    0.19    0.00    0.00   99.72
10:33:15 PM    4    0.13    0.00    0.06    0.00    0.00    0.00    0.18    0.00    0.00   99.63
10:33:15 PM    5    0.17    0.00    0.22    0.00    0.00   23.60    0.17    0.00    0.00   75.84
10:33:15 PM    6    0.09    0.00    0.05    0.00    0.00    0.00    0.16    0.00    0.00   99.70
10:33:15 PM    7    0.08    0.00    0.05    0.00    0.00    0.00    0.17    0.00    0.00   99.70

I have tried to disable/enable irqbalance daemon to see result but its same. How do i share ethernet irq share on all CPUs ?

  • What card/driver are you using for eth0? – VenkatC Mar 13 '17 at 13:51
0

To be able to spread IRQ to all available CPU's you need to change the affinity.

For example, to change IRQ affinity for eth0-TxRx-0

  1. Disable irqbalance
  2. Verify current affinity

    # cd /proc/irq/97

    # cat smp_affinity

  3. Change affinity by echoing CPU bitmask

    # echo 0xffff > smp_affinity

  4. Verify /proc/interrupts for IRQ 97

You can read more detailed info at SMP IRQ affinity

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.