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

Jason Wolfe nitroboost at gmail.com
Tue Nov 8 18:53:58 UTC 2011


On Tue, Nov 8, 2011 at 10:21 AM, Hooman Fazaeli <hoomanfazaeli at gmail.com>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


More information about the freebsd-net mailing list