User guide
D–Troubleshooting
Performance Issues
D-10 IB0054606-02 A
Erratic Performance
Sometimes erratic performance is seen on applications that use interrupts. An
example is inconsistent SDP latency when running a program such as netperf.
This may be seen on AMD-based systems using the QLE7240 or QLE7280
adapters. If this happens, check to see if the program irqbalance is running.
This program is a Linux daemon that distributes interrupts across processors.
However, it may interfere with prior interrupt request (IRQ) affinity settings,
introducing timing anomalies. After stopping this process (as a root user), bind
IRQ to a CPU for more consistent performance. First, stop irqbalance:
# /sbin/chkconfig irqbalance off
# /etc/init.d/irqbalance stop
Next, find the IRQ number and bind it to a CPU. The IRQ number can be found in
one of two ways, depending on the system used. Both methods are described in
the following paragraphs.
Method 1
Check to see if the IRQ number is found in /proc/irq/xxx, where xxx is the
IRQ number in /sys/class/infiniband/ipath*/device/irq. Do this as a
root user. For example:
# my_irq=‘cat /sys/class/infiniband/ipath*/device/irq‘
# ls /proc/irq
If $my_irq can be found under /proc/irq/, then type:
# echo 01 > /proc/irq/$my_irq/smp_affinity
Method 2
If command from Method 1, ls /proc/irq, cannot find $my_irq, then use the
following commands instead:
# my_irq=‘cat /proc/interrupts|grep ib_qib|awk \
’{print $1}’|sed -e ’s/://’‘
# echo 01 > /proc/irq/$my_irq/smp_affinity
NOTE
Take care when cutting and pasting commands from PDF documents, as
quotes are special characters and may not be translated correctly.