Messages in this thread | | | Date | Sun, 27 May 2001 21:05:50 +0200 (CEST) | From | Ingo Molnar <> | Subject | Re: [patch] severe softirq handling performance bug, fix, 2.4.5 |
| |
On Sun, 27 May 2001, Andrea Arcangeli wrote:
> I mean everything is fine until the same softirq is marked active > again under do_softirq, in such case neither the do_softirq in do_IRQ > will run it (because we are in the critical section and we hold the > per-cpu locks), nor we will run it again ourself from the underlying > do_softirq to avoid live locking into do_softirq.
if you mean the stock kernel, this scenario you describe is not how it behaves, because only IRQ contexts can mark a softirq active again. And those IRQ contexts will run do_IRQ() naturally, so while *this* do_softirq() invocation wont run those reactivated softirqs, the IRQ context that just triggered the softirq will do so.
the real source of softirq latencies is the local_bh_disable()/enable() behavior, see my previous patch.
Ingo
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |