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

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

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Dom0 hangs on boot, CentOS 5 x86_64
From: Steve Hill <steve@xxxxxxxxxxx>
Date: Wed, 7 Nov 2007 10:13:26 +0000 (GMT)
Delivery-date: Wed, 07 Nov 2007 02:14:06 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx

I originally posted this to the xen-users list, but I think it might be more appropriate here since there is quite a lot of debugging:

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-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>