Thread (47 messages) 47 messages, 6 authors, 2010-01-18

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

From: Jarek Poplawski <hidden>
Date: 2009-12-04 07:48:33

On Fri, Dec 04, 2009 at 12:04:42AM +0100, Eric Dumazet wrote:
Jarek Poplawski a écrit :
quoted
On Thu, Dec 03, 2009 at 10:51:25PM +0100, Eric Dumazet wrote:
quoted
David Miller a écrit :
quoted
From: Eric Dumazet <redacted>
Date: Thu, 03 Dec 2009 22:29:42 +0100
quoted
Nice patch, thanks :)

Acked-by: Eric Dumazet <redacted>
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.

Jarek P.
quoted hunk ↗ jump to hunk
bnx2 for example could not be patched easily, following patch doesnt work.
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 4cae2a8..8bd5d0d 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -6177,6 +6177,7 @@ bnx2_setup_int_mode(struct bnx2 *bp, int dis_msi)
 
 	bp->num_tx_rings = rounddown_pow_of_two(bp->irq_nvecs);
-	bp->dev->real_num_tx_queues = bp->num_tx_rings;
+	realloc_netdev_mq(bp->dev, bp->num_tx_rings);
 
 	bp->num_rx_rings = bp->irq_nvecs;
 }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help