igb diver crashes in head at 241037

Jack Vogel jfvogel at gmail.com
Wed Nov 21 19:44:59 UTC 2012


Gleb,

Here is a patch based on my latest igb internal code, I had not yet
committed this as I
was not completely confident about the start/queueing changes, I would love
to have a
wider testing base, so anyone that wishes to test this... Its against HEAD.

It does a few things: change mq_start to ALWAYS queue, hence
mq_start_locked no
longer takes an mbuf pointer arg.

Second, it gets rid of OACTIVE as far as the queues go, its still used only
in a device
wide up/down sense.

Last, there is a flow control display added, this follows what our linux
driver does, it
gives you the current flow control state when a link up event happens. I
was asked
to do this by my validation group, and it seemed kinda handy...

Let me know what you think,

Jack


On Tue, Nov 20, 2012 at 10:26 PM, Gleb Smirnoff <glebius at freebsd.org> 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.
>
> --
> Totus tuus, Glebius.
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: if_igb.patch
Type: application/octet-stream
Size: 9105 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20121121/8bb83592/attachment.obj>


More information about the freebsd-net mailing list