Re: Kernel WARNING: at net/core/dev.c:1330 __netif_schedule+0x2c/0x98()



On Fri, Aug 01, 2008 at 12:01:46AM -0700, David Miller wrote:
From: Jarek Poplawski <jarkao2@xxxxxxxxx>
Date: Fri, 1 Aug 2008 07:01:50 +0000

On Fri, Aug 01, 2008 at 06:48:10AM +0000, Jarek Poplawski wrote:
On Thu, Jul 31, 2008 at 05:29:32AM -0700, David Miller wrote:
...
diff --git a/net/core/dev.c b/net/core/dev.c
index 63d6bcd..69320a5 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4200,6 +4200,7 @@ static void netdev_init_queues(struct net_device *dev)
{
netdev_init_one_queue(dev, &dev->rx_queue, NULL);
netdev_for_each_tx_queue(dev, netdev_init_one_queue, NULL);
+ spin_lock_init(&dev->tx_global_lock);

This will probably need some lockdep annotations similar to
_xmit_lock.

...BTW, we probably could also consider some optimization here: the
xmit_lock of the first queue could be treated as special, and only
the owner could do such a freezing. This would save changes of
functionality to non mq devices. On the other hand, it would need
remembering about this special treatment (so, eg. a separate lockdep
initialization than all the others).

I think special casing the zero's queue's lock is a bad idea.
Having a real top-level synchronizer is a powerful tool and
we could use it for other things.

Sure, if there is really no problem with lockdep here, there is no
need for this at all.

Thanks for the explanations,
Jarek P.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages