Thread (36 messages) 36 messages, 8 authors, 2008-03-29

Re: 2.6.24 BUG: soft lockup - CPU#X

From: Matheos Worku <hidden>
Date: 2008-03-28 01:59:32

Herbert Xu wrote:
On Thu, Mar 27, 2008 at 05:34:18PM -0700, David Miller wrote:
  
quoted
The first cpu will get into __qdisc_run(), but the other
ones will just q->enqueue() and exit since the first cpu
has indicated it is processing the qdisc.
    
Indeed.  Since I created the problem it's only fair that I get
to fix it too :)

[NET]: Add preemption point in qdisc_run

The qdisc_run loop is currently unbounded and runs entirely
in a softirq.  This is bad as it may create an unbounded softirq
run.

This patch fixes this by calling need_resched and breaking out
if necessary.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Thanks,
  
Great.

In general, while the TX serialization  improves performance in terms to 
lock contention, wouldn't it reduce throughput since only one guy is 
doing the actual TX at any given time.  Wondering if it would be 
worthwhile to have an  enable/disable option specially for multi queue TX.

Regards
Matheos
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help