|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] CONFIG_SPARSE_IRQ breaks single VCPU domain 0 between xe
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
|
|
|
|
|