Re: SMP _death_

Linus Torvalds (
29 Apr 1997 04:55:39 GMT

In article <>,
Richard B. Johnson <> wrote:
>The following patch seems to fix the SMP death problem on my machine.
>--- /usr/src/linux-2.1.36/arch/i386/kernel/irq.c.orig Mon Apr 28 01:31:43 1997
>+++ /usr/src/linux-2.1.36/arch/i386/kernel/irq.c Mon Apr 28 08:34:36 1997
>@@ -543,6 +543,7 @@
> {
> struct irqaction * action;
> int do_random, cpu = smp_processor_id();
>+ synchronize_irq();
> irq_enter(cpu, irq);
> kstat.interrupts[irq]++;

Could you try putting the "synchronize_irq()" call into the
"disable_irq()" function instead (arch/i386/kernel/irq.c), which should
fix at least one potential bug in the SCSI mid-layer code (not a bug in
the SCSI code itself, but a bug in disable_irq()).

That particular fix is in my pre-patch-2.1.37, but I have to say that
while my current pre-patch is very interesting indeed, it may be more
prudent to apply just the disable_irq() part.

(But _real_ men get the pre-patch, just to see what magical speedups
have happened: SMP system call latency is noticeably better).