Subject: Re: [PATCH v4] net: Introduce realloc_netdev_mq()

From: Peter P Waskiewicz Jr <[email-masked]>
Date: Fri, 04 Dec 2009 02:51:38 -0800

On Thu, 2009-12-03 at 23:48 -0800, Jarek Poplawski wrote:
> On Fri, Dec 04, 2009 at 12:04:42AM +0100, Eric Dumazet wrote:
> > Jarek Poplawski a écrit :
> > > On Thu, Dec 03, 2009 at 10:51:25PM +0100, Eric Dumazet wrote:
> > >> David Miller a écrit :
> > >>> From: Eric Dumazet <[email-masked]>
> > >>> Date: Thu, 03 Dec 2009 22:29:42 +0100
> > >>>
> > >>>> Nice patch, thanks :)
> > >>>>
> > >>>> Acked-by: Eric Dumazet <[email-masked]>
> > >>> I like it too, but please resubmit once we have at least
> > >>> one example user submitted.
> > >>>
> > >> I successfully tested following patch.
> > > 
> > > Great! But, I see, checking if realloc_netdev_mq() use is always legal
> > > (before register_netdev()) is not trivial in this driver. (I have some
> > > suspicions around ixgbe_resume().) I wonder, if there should be added
> > > some debugging for this.
> > 
> > Yes, probably
> > 
> > Or even better, allowing realloc_netdev_mq() to be called even after
> > register_netdev() :)
> 
> We should try to avoid it because of clashes with qdisc initialization
> (especially wrt. preserving stats). But mainly it's about knowing the
> exact reason why this thing (probing the hardware for max mq
> capabilities) can't be finished before register_netdev(). I'll try to
> look at this more.
> 

Honestly, there's no reason we can't know how many Tx queues we'll have
prior to registering the netdev.  All of this should be figured out
after ixgbe_alloc_queues() and ixgbe_init_interrupt_scheme() are called.

Once we know what features are enabled, and how many MSI-X vectors the
platform gives us, we can make the call for how many queues to allocate.

I like this realloc_netdev_mq() mechanism.  I'm going to pull that into
my tree for testing, since I unfortunately was unaware it existed (lack
of my poking around).  This is good stuff.

Cheers,
-PJ