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/
Home Products Support Community News


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

To: xen-users@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-users] Dom0 hangs on boot, CentOS 5 x86_64
From: Steve Hill <steve@xxxxxxxxxxx>
Date: Wed, 31 Oct 2007 13:04:01 +0000 (GMT)
Delivery-date: Wed, 31 Oct 2007 06:04:49 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-users] Dom0 hangs on boot, CentOS 5 x86_64, Steve Hill <=