[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080921.000301.198672963.davem@davemloft.net>
Date: Sun, 21 Sep 2008 00:03:01 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: herbert@...dor.apana.org.au
Cc: jarkao2@...il.com, netdev@...r.kernel.org, kaber@...sh.net,
alexander.h.duyck@...el.com
Subject: Re: [PATCH take 2] pkt_sched: Fix qdisc_watchdog() vs.
dev_deactivate() race
From: Herbert Xu <herbert@...dor.apana.org.au>
Date: Sun, 21 Sep 2008 15:38:21 +0900
> Going back to the case of prio, I think what we should do is to
> create a separate qdisc queue for each band. The qdisc selection
> should be done before the packet is queued, just as we do in the
> TX hashing case.
That's a very interesting idea.
This works if you want it at the root, but what if you only wanted to
prio at a leaf? I think that case has value too.
I tend to also disagree with another mentioned assertion. The one
where having a shared qdisc sucks on SMP. It doesn't. The TX queue
lock is held much longer than the qdisc lock.
The ->hard_start_xmit() TXQ lock has to be held while:
1) DMA mapping the SKB
2) building TX descriptors
3) doing at least one PIO to the hardware
These operations, each, can be on the order of few thousands of
cycles.
Whereas a qdisc dequeue is perhaps a few hundred, maybe on the order
of a thousand, except in very elaborate classful qdisc configs.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists