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