Question regarding interrupt activity on q0 for be2net driver

Solution In Progress - Updated -

Environment

Red Hat Enterprise Linux (RHEL) 6.4
Emulex be2net driver

Issue

The number of interrupts reported for queue other than q0 is roughly the same as the number of packets transmitted by client to server and vice versa.
We would like to know what do interrupts reported for eth0-q0 correspond to? These interrupts seem to be equal to the sum of interrupts in other queues. We find that the CPU handling the q0 spends noticeably more CPU cycles handling softirqs than cores for other queues. Therefore, we would like to know what is going on in that queue.

Resolution

This issue was resolved with the release of RHEL 6.6.

Root Cause

be2net unevenly spreads packets across the queues:

/proc/interrupts:

eth0-q0: 1474376
eth0-q1: 735355
eth0-q2: 80
eth0-q3: 80
eth0-q4: 85
eth0-q5: 735303
eth0-q6: 80
eth0-q7: 80

Due to a bug in be2net driver version 4.4.161.0r, be2net only creates 1 TXQ. Emulex development has released a patch to create 8TXQ. This was handled in Red Hat internal bz 976179, and released with RHEL 6.6.

Diagnostic Steps

Perform load test and verify the interrupts in /proc/interrupts.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.