Re: 2.2.16pre7 SMP Crashes

From: Zdenek Kabelac (kabi@fi.muni.cz)
Date: Thu Jun 08 2000 - 05:34:30 EST


George Sexton wrote:
>
> I tried the NMI Ooopser and it didn't seem to work. Perhaps I did it wrong.
> I set it for IRQ 1 and it disabled the keyboard. Anyhow, I didn't get an
> oops message when it locked up. I did pound on the keyboard after the
> lockup. Here is the output captured from the serial console for the bootup.
> The .config file follows that.
>
> LILO boot:
> Loading linux............
> Linux version 2.2.16pre7 (root@server.wcon.org) (gcc version egcs-2.91.66

Try to use newer gcc 2.95.XX.

Also maybe you could try this patch - it doesn't solve any bug in
kernel,
however it prevent one kind of deadlock I'm recieving with 2.2.X kernel
and RTLinux.

--- linux.orig/arch/i386/kernel/irq.h Wed May 31 11:21:04 2000
+++ linux/arch/i386/kernel/irq.h Wed May 31 11:21:47 2000
@@ -138,8 +138,22 @@
 static inline void irq_enter(int cpu, unsigned int irq)
 {
        hardirq_enter(cpu);
- while (test_bit(0,&global_irq_lock)) {
- /* nothing */;
+ if (global_irq_holder == cpu && test_bit(0, &global_irq_lock)) {
+ printk(KERN_WARNING "irq_enter - CPU:%d already holder
(count:%
d, %d)!!!\n",
+ cpu, global_irq_count, local_irq_count[cpu]);
+ /* avoid deadlock bellow */
+ clear_bit(0,&global_irq_lock);
+ } else {
+ unsigned long i = 1000000;
+ while (test_bit(0,&global_irq_lock) && i) {
+ i--;
+ /* nothing */;
+ }
+ if (!i) {
+ clear_bit(0,&global_irq_lock);
+ printk(KERN_WARNING "irq_enter - loop timeout CPU:%d
Holder:%d!!!\n",
+ cpu, global_irq_holder);
+ }
        }
 }

-- 
             There are three types of people in the world:
               those who can count, and those who can't.
  Zdenek Kabelac  http://i.am/kabi/ kabi@i.am {debian.org; fi.muni.cz}

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



This archive was generated by hypermail 2b29 : Thu Jun 15 2000 - 21:00:15 EST