[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Xen 4.2.1 boot failure with IOMMU enabled
>>> On 13.02.13 at 19:21, povder <povder@xxxxxxxxx> wrote: >> > 2013/2/13 Jan Beulich <JBeulich@xxxxxxxx>: >>>> I wonder how native Linux with >>>> IOMMU enabled does in that situation... >>>> > > Here is full boot log of latest centos stable kernel: > http://pastebin.com/raw.php?i=RnrMFXqf > I had to set amd_iommu=on and amd_iommu_dump (to dump ACPI table) - > undocumented kernel options. > > Interesting part in my opinion: > calling pci_iommu_init+0x0/0x21 @ 1 > AMD-Vi: device: 00:00.2 cap: 0040 seg: 0 flags: 3e info 1300 > AMD-Vi: mmio-addr: 00000000f6000000 > AMD-Vi: DEV_SELECT_RANGE_START devid: 00:00.0 flags: 00 > AMD-Vi: DEV_RANGE_END devid: 00:00.2 > AMD-Vi: DEV_SELECT devid: 00:04.0 flags: 00 > AMD-Vi: DEV_SELECT devid: 06:00.0 flags: 00 > AMD-Vi: DEV_SELECT devid: 00:06.0 flags: 00 > AMD-Vi: DEV_SELECT devid: 05:00.0 flags: 00 > AMD-Vi: DEV_SELECT devid: 00:07.0 flags: 00 > AMD-Vi: DEV_SELECT devid: 04:00.0 flags: 00 > AMD-Vi: DEV_SELECT devid: 00:0b.0 flags: 00 > AMD-Vi: DEV_SELECT_RANGE_START devid: 03:00.0 flags: 00 > AMD-Vi: DEV_RANGE_END devid: 03:00.1 > AMD-Vi: DEV_SELECT devid: 00:0d.0 flags: 00 > AMD-Vi: DEV_SELECT devid: 02:00.0 flags: 00 > AMD-Vi: DEV_SELECT devid: 00:11.0 flags: 00 > AMD-Vi: DEV_SELECT_RANGE_START devid: 00:12.0 flags: 00 > AMD-Vi: DEV_RANGE_END devid: 00:12.2 > AMD-Vi: DEV_SELECT_RANGE_START devid: 00:13.0 flags: 00 > AMD-Vi: DEV_RANGE_END devid: 00:13.2 > AMD-Vi: DEV_SELECT devid: 00:14.0 flags: d7 > AMD-Vi: DEV_SELECT devid: 00:14.1 flags: 00 > AMD-Vi: DEV_SELECT devid: 00:14.2 flags: 00 > AMD-Vi: DEV_SELECT devid: 00:14.3 flags: 00 > AMD-Vi: DEV_SELECT devid: 00:14.4 flags: 00 > AMD-Vi: DEV_ALIAS_RANGE devid: 01:00.0 flags: 00 devid_to: > 00:14.4 > AMD-Vi: DEV_RANGE_END devid: 01:1f.7 > AMD-Vi: DEV_SELECT devid: 00:14.5 flags: 00 > AMD-Vi: DEV_SELECT_RANGE_START devid: 00:16.0 flags: 00 > AMD-Vi: DEV_RANGE_END devid: 00:16.2 > alloc irq_desc for 55 on node 0 > alloc kstat_irqs on node 0 > IOAPIC[1]: Set routing entry (7-31 -> 0x79 -> IRQ 55 Mode:1 Active:1) > pci 0000:00:00.2: PCI INT A -> GSI 55 (level, low) -> IRQ 55 > alloc irq_desc for 56 on node 0 > alloc kstat_irqs on node 0 > pci 0000:00:00.2: irq 56 for MSI/MSI-X > AMD-Vi: Enabling IOMMU at 0000:00:00.2 cap 0x40 > AMD-Vi: Initialized for Passthrough Mode > AMD-Vi: Enabling IOMMU at 0000:00:00.2 cap 0x40 > initcall pci_iommu_init+0x0/0x21 returned 0 after 569797 usecs > > I don't see 06:00.1 device in IOMMU enabling process on which Xen crashes. So the problem appears to be that this device has BDF higher than any known one. Could you therefore try whether the patch below allows the system to come up? Jan --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c @@ -32,8 +32,8 @@ struct amd_iommu *find_iommu_for_device( { struct ivrs_mappings *ivrs_mappings = get_ivrs_mappings(seg); - BUG_ON ( bdf >= ivrs_bdf_entries ); - return ivrs_mappings ? ivrs_mappings[bdf].iommu : NULL; + return ivrs_mappings && bdf < ivrs_bdf_entries ? ivrs_mappings[bdf].iommu + : NULL; } /* _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |