Re: [patch] SMP race fix [was Re: SMP lockup & 3c509 on 2.2.x [aka. the Deadly 'ping -f']]

=?iso-8859-1?Q?Taneli_V=E4h=E4kangas?= (taneli@firmament.fi)
Fri, 7 May 1999 00:56:03 +0300 (EEST)


Hello again!

On Thu, 6 May 1999, Andrea Arcangeli wrote:

> Index: drivers/net/3c509.c
> Index: drivers/net/8390.c
> Index: include/asm/irq.h
> Index: arch/i386/kernel/io_apic.c
> Index: arch/i386/kernel/irq.c
> Index: arch/i386/kernel/visws_apic.c
[snip]
>
> M.H., Nicholas and Taneli, could you confirm that my patch above will fix
> _all_ your SMP lockup that you all can reproduce trivially after some
> minute of heavy network usage in SMP? (I had zero reports yet... ;).

Sorry for the delay. I needed to read for Friday's exam.

On to the patch.

I hand-applied most parts of it, didn't touch ioapic-level functions or
visws file, and also didn't apply the part about locking against when
called from the interrupt handler. I had to add disable_irq_nosync to
the list of exported functions in i386_ksyms.c, since my 3c509 only
works as a modules. After that, it worked very well. No problems
flood pinging (previously it would have locked within five seconds).
Functionality-wise the patch works miracles. Have you considered Linus'
suggestion about implementing IRQ_BUSY flag? Would that be a cleaner
approach?

Taneli <taneli@firmament.fi>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/