[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-users] Dom0 hangs on boot, CentOS 5 x86_64

I have been trying to get Xen working on an Intel S5000VLC motherboard in x86_64 mode running CentOS 5 (2.6.18 kernel). It boots fine without Xen, but when running Xen I get a hang on boot while it is configuring the PCI devices. I've done some debugging, and it appears that the problem is a HYPERVISOR_physdev_op() call, which never returns.

The call at fault is in io_apic_write() in arch/x86_64/kernel/io_apic-xen.c:
        HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op);
which is called from io_apic_set_pci_routing() (in the same file):
        io_apic_write(ioapic, 0x10+2*pin, *(((int *)&entry)+0));
called from mp_register_gsi() in arch/x86_64/kernel/mpparse-xen.c:
        io_apic_set_pci_routing(ioapic, ioapic_pin, gsi, triggering ==
                ACPI_EDGE_SENSITIVE ? 0 : 1, polarity == ACPI_ACTIVE_HIGH
                 ? 0 : 1);
called from acpi_register_gsi() in arch/i386/kernel/acpi/boot-xen.c:
        plat_gsi = mp_register_gsi(gsi, triggering, polarity);

I lost track of the calls at this point, but picked them up again in arch/i386/pci/common.c where pcibios_enable_device() calls:
        return pcibios_enable_irq(dev);
which is called from pci_enable_device_bars() in drivers/pci/pci.c:
        err = pcibios_enable_device(dev, bars);
called from pci_enable_device() in the same file:
        err = pci_enable_device_bars(dev, (1 << PCI_NUM_RESOURCES) - 1);
called from drivers/pci/bus.c:
        retval = pci_enable_device(dev);

The problem also happens under Fedora 7 when running Xen.

It looks like something might not be getting initialised, since the xen kernel boots fine if you boot the non-xen kernel first and then reboot without powering off in between.

The motherboard is running the latest (2 month old) BIOS, however I've noticed that the stock (non-Xen) Fedora 7 kernel fails to boot unless you specify acpi=off, so presumably the BIOS has some ACPI bugs. Specifying acpi=off doesn't solve the Xen problem though.

I'd appreciate any suggestions. I'm relatively happy poking around in the Linux kernel, but since it is a call to the Xen hypervisor which is hanging I'm a bit stumped, having never looked at the Xen sourcecode before.

Thank you.


 - Steve
   xmpp:steve@xxxxxxxxxxx   sip:steve@xxxxxxxxxxx   http://www.nexusuk.org/

     Servatis a periculum, servatis a maleficum - Whisper, Evanescence

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.