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@nexusuk.org sip:steve@nexusuk.org http://www.nexusuk.org/ Servatis a periculum, servatis a maleficum - Whisper, Evanescence _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
> 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 unlessyou> specify acpi=off, so presumably the BIOS has some ACPI bugs.Specifying> acpi=off doesn''t solve the Xen problem though.acpi=off needs to be specified on the xen command line rather than kernel''s. Might be worth trying that. Running without acpi isn''t ideal, though. To debug the xen issue, use a DEBUG=y build of xen then you can access the xen debug console on either serial or console. That should enable you to get a RIP out to find where its looping. Ian _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
If you can''t boot ''acpi=off'' with native Linux then that is not a good sign. Your chances of booting on Xen without ''acpi=off'' are small. When you specify ''acpi=off'' are you putting it on Xen''s command line or dom0''s? It should be on Xen''s -- if Xen and dom0 disagree about use of acpi then the system is rather unlikely to boot. If that''s not the problem, but I suspect it is, then we need to look at what output device you are using. Are you looking at VGA output or serial output? If the latter then the ioapic write could be clobbering the serial irq. -- Keir On 7/11/07 10:13, "Steve Hill" <steve@nexusuk.org> wrote:> > 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._______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Wed, 7 Nov 2007, Keir Fraser wrote:> If you can''t boot ''acpi=off'' with native Linux then that is not a good sign. > Your chances of booting on Xen without ''acpi=off'' are small. When you > specify ''acpi=off'' are you putting it on Xen''s command line or dom0''s? It > should be on Xen''s -- if Xen and dom0 disagree about use of acpi then the > system is rather unlikely to boot.Thank you for your help - it pointed me in the right direction. I was specifying acpi=off on just the dom0 Linux kernel. Adding acpi=noirq to the Xen kernel instead seems to have worked around the problem. It''s quite a sad state of affairs when an Intel board with a 2 month old BIOS has such big ACPI problems - I thought the BIOS vendors had squashed most of them these days. :( -- - Steve xmpp:steve@nexusuk.org sip:steve@nexusuk.org http://www.nexusuk.org/ Servatis a periculum, servatis a maleficum - Whisper, Evanescence _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel