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

Re: [Xen-devel] CONFIG_SPARSE_IRQ breaks single VCPU domain 0 between xe

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: Re: [Xen-devel] CONFIG_SPARSE_IRQ breaks single VCPU domain 0 between xen/master and xen/next
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Fri, 26 Feb 2010 12:05:02 +0000
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Zhang <xiantao.zhang@xxxxxxxxx>, Xiantao
Delivery-date: Fri, 26 Feb 2010 04:06:58 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1267184533.11737.12277.camel@xxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <1267184533.11737.12277.camel@xxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Fri, 2010-02-26 at 11:42 +0000, Ian Campbell wrote:

> xen/master (2.6.31.6) appears fine. I glanced through the diff between
> xen/master and xen/next and nothing leaps out. xen/next is missing
> e459de959 "Find an unbound irq number in reverse order (high to low)."
> but I don't see how that make a difference (and it doesn't).

Under 2.6.31.6 acpi_probe_gsi (and hence probe_nr_irqs_gsi) returns 24
while under 2.6.32 it returns 256. Part of it might be 48beb917f ""
which is only in xen/next and contains:

--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1039,6 +1039,9 @@ int __init acpi_probe_gsi(void)
                        max_gsi = gsi;
        }
 
+       if (xen_initial_domain())
+               max_gsi += 255; /* Plus maximum entries of an ioapic. */
+
        return max_gsi + 1;
 }

Which looks might suspicious to me... However simply removing that
causes acpi_probe_gsi to return 16 (instead of 24) and I run out of
interrupts for use by real hardware (specifically my disk controller).
If I hack acpi_probe_gsi to return at least 24 everything works OK so it
seems the error is only at the detection stage. 

The kernel logs contains this diff between 2.6.31.6 and 2.6.32 which I
suspect is relevant...

@@ -349,167 +341,125 @@
 ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
 ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
 ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
-IOAPIC[0]: Unable to change apic_id!
-IOAPIC[0]: apic_id 255, version 32, address 0xfec00000, GSI 0-23
+IOAPIC[0]: apic_id 4, version 0, address 0xfec00000, GSI 0-0
 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
+ERROR: Unable to locate IOAPIC for GSI 2
 ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
-ACPI: IRQ0 used by override.
-ACPI: IRQ2 used by override.
-ACPI: IRQ9 used by override.
+ERROR: Unable to locate IOAPIC for GSI 9
 Enabling APIC mode:  Flat.  Using 1 I/O APICs
 Using ACPI (MADT) for SMP configuration information

2a4ab640 "ACPI, x86: expose some IO-APIC routines when CONFIG_ACPI=n"
moved some stuff around in this area but io_apic_get_redir_entries()
(which appears to be the key function defining the GSI range) doesn't
seem to have changed.

Ian.


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