Intel 82574L interface wedging on em 7.1.9/7.2.3 when MSIX enabled

Hooman Fazaeli hoomanfazaeli at
Wed Nov 9 08:55:08 UTC 2011

On 11/8/2011 10:23 PM, Jason Wolfe wrote:
> On Tue, Nov 8, 2011 at 10:21 AM, Hooman Fazaeli <hoomanfazaeli at <mailto:hoomanfazaeli at>> wrote:
>     I have allocated more time to the problem and guess I can explain what
>     your problem is.
>     With MSIX disabled, the driver uses fast interrupt handler (em_irq_fast)
>     which calls rx/tx task and then checks for link status change. This
>     implies that rx/tx task is executed with every link state change. This is
>     not efficient, as it is a waste of time to start transmission when link is down.
>     However, it has the effect that after a temporary link loss (active->inactive->active),
>     _start is executed and transmission continues normally. The value of link_toggles (3)
>     clearly indicates that you had such a transition when the problem occured.
>     With MSIX enabled, the link task (em_handle_link) does _not_ triggers
>     _start when the link changes state from inactive to active (which it should).
>     If if_snd quickly fills up during a temporary link loss, transmission is
>     stopped forever and the driver never recovers from that state.
>     The last patch should have reduced the frequency of the problem
>     but it assumes every IFQ_ENQUEUE is followed by a if_start which
>     is not a true assumption.
>     If you are willing to test, I can prepare another patch for you to fix
>     the issue in a different and more reliable way.
> Hooman,
> Thanks again for the assist, it sounds like this may also be why we see a bit higher latency with MSI-X disabled on this chipset.
> I'm happy to test any patches as I have a handful of boxes set aside to 'research' this issue.  Hopefully the testing here helps along any patches to the tree for others benefit also.
> Jason
Latency may or may not be related. I am doing more tests and will post
my findings soon.

More information about the freebsd-net mailing list