[patch] big IRQ lock removal, 2.5.27-F8

From: Ingo Molnar (mingo@elte.hu)
Date: Tue Jul 23 2002 - 07:21:35 EST


the latest irqlock patch, against 2.5.27-BK-current can be found at:

   http://redhat.com/~mingo/remove-irqlock-patches/remove-irqlock-2.5.27-F8

the big change since -F3 is the introduction of a separate preemption,
hardirq and softirq bitrange within preempt_count:

 * PREEMPT_MASK: 0x000000ff
 * HARDIRQ_MASK: 0x0000ff00
 * SOFTIRQ_MASK: 0x00ff0000
 * IRQ_MASK: 0x00ffff00

with this it was possible to have a functional in_irq() again, so the
skbuff.c hack could be reverted.

The definition of the bitrange depends on the following base defines:

 #define NR_PREEMPT 256
 #define NR_HARDIRQ 256
 #define NR_SOFTIRQ 256

NOTE: other, non-x86 architectures might want to define a tighter
bitrange, to make the preempt-only check cheaper. On x86 the above
bitrange is the most optimal.

compiles, boots, works just fine.

Changes in -F8:

 - preempt/hardirq/softirq count separation, cleanups.

 - skbuff.c fix.

 - use irq_count() in scheduler_tick()

Changes in -F3:

 - the entry.S cleanups/speedups by Oleg Nesterov.

 - a rather critical synchronize_irq() bugfix: if a driver frees an
   interrupt that is still being probed then synchronize_irq() locks up.
   This bug has caused a spurious boot-lockup on one of my testsystems,
   ifconfig would lock up trying to close eth0.

 - remove duplicate definitions from asm-i386/system.h, this fixes
   compiler warnings.

        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/



This archive was generated by hypermail 2b29 : Tue Jul 23 2002 - 22:00:42 EST