On 11/8/2011 10:23 PM, Jason Wolfe wrote:
On Tue, Nov 8, 2011 at 10:21 AM, Hooman Fazaeli <hoomanfaza...@gmail.com 
<mailto:hoomanfaza...@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
Latency may or may not be related. I am doing more tests and will post
my findings soon.



_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to