Thread (43 messages) 43 messages, 5 authors, 2009-08-04

Re: [RFC] [PATCH] Don't run __qdisc_run() on a stopped TX queue

From: Jarek Poplawski <hidden>
Date: 2009-07-29 19:27:14

On Wed, Jul 29, 2009 at 06:38:36PM +0530, Krishna Kumar2 wrote:
Hi Jarek,

Jarek Poplawski [off-list ref] wrote on 07/29/2009 06:17:34 PM:
quoted
Re: [RFC] [PATCH] Don't run __qdisc_run() on a stopped TX queue

On Wed, Jul 29, 2009 at 08:30:41PM +0800, Herbert Xu wrote:
quoted
On Wed, Jul 29, 2009 at 11:26:14AM +0000, Jarek Poplawski wrote:
quoted
If you mean the tx lock there should be no "real" contention: only
one waiter max. qdisc lock's contention might be higher, but it's
use (during contention) better: enqueue + dequeue together instead
of doing it separately.
Hmm, you will have contention if they're both transmitting a
single flow which must always go into a single physical queue.

So you'll have two CPUs doing the work of a single CPU, with one
of them always spinning on the TX lock.
Hmm.. I'd call it a little waiting, but OK let's call it contention;-)
When tx is faster than queue operations there could be no contention
at all. I'm not saying I must be right: IMHO it's only worth trying.
My expectation is that tx would be much longer than a few lines of
queue operation....
I meant here the case of non-default qdisc, like HTB, HFSC or CBQ,
often with many classes and filters, so a few more lines than usual...

Thanks,
Jarek P.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help