Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 09 Nov 2011 12:25:00 +0330
From:      Hooman Fazaeli <hoomanfazaeli@gmail.com>
To:        Jason Wolfe <nitroboost@gmail.com>
Cc:        pyunyh@gmail.com, freebsd-net@freebsd.org, Jack Vogel <jfvogel@gmail.com>, Emil Muratov <gpm@hotplug.ru>
Subject:   Re: Intel 82574L interface wedging on em 7.1.9/7.2.3 when MSIX enabled
Message-ID:  <4EBA3FE4.3050106@gmail.com>
In-Reply-To: <CAAAm0r1g=Jgx4REFRWQkhNCYh5M9=hBKK%2Bh5F=Jx7iuZvoTVfQ@mail.gmail.com>
References:  <CAAAm0r0RXEJo4UiKS=Ui0e5OQTg6sg-xcYf3mYB5%2Bvk8i8557w@mail.gmail.com>	<4E8F51D4.1060509@sentex.net>	<CACqU3MVwLaepFymZJkaVk6p=SpykGhqs=VYFjLh9fP9S=AxDhg@mail.gmail.com>	<CAAAm0r1DKvoL9=Ket9up=4%2B5xiCzTTZJK99FhF9jcCA28B0M%2BA@mail.gmail.com>	<CAAAm0r3XdsMHZh%2BP_NF-txZasdExzwZ8ymmGQgGhJQds0fOiBQ@mail.gmail.com>	<CAAAm0r1iS3z-7CBJ=xYDf%2BJOA1Q2nU0O54Twbyb7FjvgWHjKVw@mail.gmail.com>	<4EA7E203.3020306@sepehrs.com>	<CAAAm0r3Nr2t8cCetPkFnLQ-3KwqHw_0SpqbtvYPRUkSP=9n8CA@mail.gmail.com>	<4EA80818.3030504@sentex.net>	<4EA80F88.4000400@hotplug.ru>	<4EA82715.2000404@gmail.com>	<4EA8FA40.7010504@hotplug.ru>	<4EA91836.2040508@gmail.com>	<4EA959EE.2070806@hotplug.ru>	<4EAD116A.8090006@gmail.com>	<CAAAm0r3qm=nQQuAmZDD4k4X8K-xW6_kM9TukRT=1GoG9dYR3zw@mail.gmail.com>	<4EAE58A2.9040803@gmail.com>	<CAAAm0r0uoPPEQbq5rHkFr6ZLp-WJ4YVjDVvxxV6y%2BUh4eEKDEA@mail.gmail.com>	<4EB96511.50701@gmail.com> <CAAAm0r1g=Jgx4REFRWQkhNCYh5M9=hBKK%2Bh5F=Jx7iuZvoTVfQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 11/8/2011 10:23 PM, Jason Wolfe wrote:
> On Tue, Nov 8, 2011 at 10:21 AM, Hooman Fazaeli <hoomanfazaeli@gmail.com <mailto:hoomanfazaeli@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.






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4EBA3FE4.3050106>