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