Date: Wed, 21 Nov 2012 12:03:17 -0500 From: Karim Fodil-Lemelin <fodillemlinkarim@gmail.com> To: Gleb Smirnoff <glebius@FreeBSD.org> Cc: jfv@FreeBSD.org, freebsd-net@FreeBSD.org, Jack Vogel <jfvogel@gmail.com> Subject: Re: igb diver crashes in head@241037 Message-ID: <50AD0955.1040600@gmail.com> In-Reply-To: <20121121062631.GJ67660@glebius.int.ru> References: <50AA8F24.7080604@gmail.com> <20121120111833.GC67660@FreeBSD.org> <CAFOYbckbEPr3B=Kj5kiW16QKj5a6hWeTo%2BiU=vRpfy2jqXvd4w@mail.gmail.com> <20121121062631.GJ67660@glebius.int.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50AD0955.1040600>