igb diver crashes in head at 241037

Karim Fodil-Lemelin fodillemlinkarim at gmail.com
Wed Nov 21 17:03:38 UTC 2012


Hi Gleb,

On 21/11/2012 1:26 AM, Gleb Smirnoff wrote:
>    Jack,
>
> On Tue, Nov 20, 2012 at 09:19:54AM -0800, Jack Vogel wrote:
> J> > I'd suggest the following code:
> J> >
> J> >                 if (m)
> J> >                         drbr_enqueue(ifp, txr->br, m);
> J> >                 err = igb_mq_start_locked(ifp, txr, NULL);
> J> >
> J> > Which eventually leads us to all invocations of igb_mq_start_locked()
> J> > called
> J> > with third argument as NULL. This allows us to simplify this function.
> J> >
> J> > Patch for review attached.
> J> >
> J> >
> J> Yes Gleb, I already have code in my internal tree which simply removes an
> J> mbuf
> J> pointer form the start_locked call and ALWAYS does a dequeue, start
> J> similarly
> J> will always enqueue. I just have been busy with ixgbe for a bit and have
> J> not gotten
> J> it committed yet.
>
>    Since ixgbe work is performance tuning and this patch closes a kernel crash,
> I'd ask to preempt the ixgbe job with this patch. :)
>
>    Or you can approve my patch and I will check it in.
>
What about protecting the em driver from the same out of order problem 
that was fixed in igb?

Wouldn't make sense to commit a fix for both drivers?

Thanks,

Karim.


More information about the freebsd-net mailing list