Re: [patch] softirq performance fixes, cleanups, 2.4.10.

Russell King (rmk@arm.linux.org.uk)
Wed, 26 Sep 2001 19:55:13 +0100


On Wed, Sep 26, 2001 at 06:44:03PM +0200, Ingo Molnar wrote:
> - the generic definition of __cpu_raise_softirq() used to override
> any lowlevel definitions done in asm/softirq.h. It's now conditional so
> the architecture definitions should actually be used.

Ingo,

The generic definition is the one to use - we used to allow
__cpu_raise_softirq from outside IRQ context, but all RISC architectures
ended up with code as follows:

restore irqs
save + disable irqs
set bit
restore irqs

In the latest kernels, you will notice that __cpu_raise_softirq is always
within an IRQ protected region (thanks to Andrea for that work), so there
is no reason for it to protected itself from interrupts. Hence the comment
above cpu_raise_softirq:

* This function must run with irq disabled!

--
Russell King (rmk@arm.linux.org.uk)                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html

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