Re: SMP + NOAPIC + ATA == spurious APIC interrupt on CPU#0

From: Keith Owens (kaos@ocs.com.au)
Date: Sun May 28 2000 - 03:15:29 EST


On Sun, 28 May 2000 00:50:23 -0700 (PDT),
Andre Hedrick <andre@linux-ide.org> wrote:
>Ingo M..........where are you.........
>May 28 00:42:50 p6dnf kernel:
> spurious APIC interrupt on CPU#0, should never happen.
>Screen FLOODED had to ssh to from another box to read the logs
>Sheesh it runs but the screen is APIC error to infinity.

BP6 has done this since day 1, Igno says the messages are info only.
Against 2.4.0-test1-ac4

Index: 0-test1-ac4.1/arch/i386/kernel/apic.c
--- 0-test1-ac4.1/arch/i386/kernel/apic.c Fri, 26 May 2000 13:10:01 +1000 kaos (linux-2.4/z/c/24_apic.c 1.1 644)
+++ 0-test1-ac4.1(w)/arch/i386/kernel/apic.c Sun, 28 May 2000 18:10:25 +1000 kaos (linux-2.4/z/c/24_apic.c 1.1 644)
@@ -701,7 +701,7 @@
                 ack_APIC_irq();
 
         /* see sw-dev-man vol 3, chapter 7.4.13.5 */
- printk("spurious APIC interrupt on CPU#%d, should never happen.\n",
+ printk(KERN_INFO "spurious APIC interrupt on CPU#%d, should never happen.\n",
                         smp_processor_id());
 }
 
@@ -718,32 +718,32 @@
         spin_lock(&err_lock);
 
         v = apic_read(APIC_ESR);
- printk("APIC error interrupt on CPU#%d, should never happen.\n",
+ printk(KERN_INFO "APIC error interrupt on CPU#%d, should never happen.\n",
                         smp_processor_id());
- printk("... APIC ESR0: %08lx\n", v);
+ printk(KERN_INFO "... APIC ESR0: %08lx\n", v);
 
         apic_write(APIC_ESR, 0);
         v |= apic_read(APIC_ESR);
- printk("... APIC ESR1: %08lx\n", v);
+ printk(KERN_INFO "... APIC ESR1: %08lx\n", v);
         /*
          * Be a bit more verbose. (multiple bits can be set)
          */
         if (v & 0x01)
- printk("... bit 0: APIC Send CS Error (hw problem).\n");
+ printk(KERN_INFO "... bit 0: APIC Send CS Error (hw problem).\n");
         if (v & 0x02)
- printk("... bit 1: APIC Receive CS Error (hw problem).\n");
+ printk(KERN_INFO "... bit 1: APIC Receive CS Error (hw problem).\n");
         if (v & 0x04)
- printk("... bit 2: APIC Send Accept Error.\n");
+ printk(KERN_INFO "... bit 2: APIC Send Accept Error.\n");
         if (v & 0x08)
- printk("... bit 3: APIC Receive Accept Error.\n");
+ printk(KERN_INFO "... bit 3: APIC Receive Accept Error.\n");
         if (v & 0x10)
- printk("... bit 4: Reserved!.\n");
+ printk(KERN_INFO "... bit 4: Reserved!.\n");
         if (v & 0x20)
- printk("... bit 5: Send Illegal Vector (kernel bug).\n");
+ printk(KERN_INFO "... bit 5: Send Illegal Vector (kernel bug).\n");
         if (v & 0x40)
- printk("... bit 6: Received Illegal Vector.\n");
+ printk(KERN_INFO "... bit 6: Received Illegal Vector.\n");
         if (v & 0x80)
- printk("... bit 7: Illegal Register Address.\n");
+ printk(KERN_INFO "... bit 7: Illegal Register Address.\n");
 
         ack_APIC_irq();
 

-
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 : Wed May 31 2000 - 21:00:19 EST