Re: [patch] severe softirq handling performance bug, fix, 2.4.5

Andrea Arcangeli (andrea@suse.de)
Sun, 27 May 2001 21:55:28 +0200


On Sun, May 27, 2001 at 09:05:50PM +0200, Ingo Molnar wrote:
>
> 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

Yes the stock kernel.

> 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.

it won't because the underlying do_softirq did local_bh_disable() and
the in_interrupt() check will cause the do_softirq from do_IRQ to return
immediatly.

Andrea
-
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/