WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ppc-devel

[XenPPC] Spurious interrupt count

To: xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
Subject: [XenPPC] Spurious interrupt count
From: Amos Waterland <apw@xxxxxxxxxx>
Date: Sat, 7 Oct 2006 00:44:03 -0400
Delivery-date: Fri, 06 Oct 2006 21:44:31 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ppc-devel-request@lists.xensource.com?subject=help>
List-id: Xen PPC development <xen-ppc-devel.lists.xensource.com>
List-post: <mailto:xen-ppc-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ppc-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.12-2006-07-14
I am having some doubts about this code in external.c:

    vec = xen_mpic_get_irq(regs);
    if (vec != -1) {
        ...
        spur_count = 0;
    } else {
        ++spur_count;
        if (spur_count > 100)
            panic("Too many (%d) spurrious interrupts in a row\n");
    }

When I do this:

--- a/xen/arch/powerpc/external.c       Fri Oct 06 12:15:06 2006 -0500
+++ b/xen/arch/powerpc/external.c       Sat Oct 07 00:35:01 2006 -0400
@@ -84,6 +84,7 @@ void do_external(struct cpu_user_regs *r
 
     if (vec != -1) {
         DBG("EE:0x%lx isrc: %d\n", regs->msr, vec);
+        BUG();
         regs->entry_vector = vec;
         do_IRQ(regs);

I make it all the way to here in dom0 Linux before the BUG asserts:

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
AMD8111: IDE controller at PCI slot 0000:00:04.1
AMD8111: chipset revision 3
AMD8111: 0000:00:04.1 (rev 03) UDMA133 controller
AMD8111: 100% native mode on irq 16
    ide0: BM-DMA at 0x8020-0x8027, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0x8028-0x802f, BIOS settings: hdc:pio, hdd:pio
hda: FUJITSU MHT2040AS, ATA DISK drive
ide0 at 0x8000-0x8007,0x800a on irq 16
hda: max request size: 128KiB
(XEN) BUG at external.c:87

The code of concern seems well suited to catch a spurious interrupt
storm, since when a valid external interrupt is recieved, the counter is
reset.  But given that we don't take our first external until way into
dom0's boot, we are actually asserting that 100 spurious interrupts
won't be received over a fairly long period of time.

I can't find any documents regarding expected spurious interrupt rates.
Can anyone with knowledge in this area comment about the code of concern?


_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel

<Prev in Thread] Current Thread [Next in Thread>