Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-users

[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
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

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