[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: MSI 890FXA-GD70: AMD IOMMU, VmError: Failed to assign device to IOMMU, (XEN) AMD_IOV: IO_PAGE_FALT: domain:10, device id:0x900, fault address:0x0
Hi, AFAIK, Xen does not allow devices which share a same device id to be assigned into different domains. According to the IVRS table, device 03:xx.x uses the device id of 00:14.4, which means, both 03:xx.x and 00:14.4 should be hidden from dom0 and them can only be assign to a same domain. Device 00:14.2 might be an different story. Probably, current xen had added some checks to prevent devices on the SAME device number from been spread among different domains. I suppose you did not hide all functions on bus 0 device 14? Thanks, Wei On Wednesday 14 July 2010 01:13:40 Huang2, Wei wrote: > [cc Wei Wang here] > > In the function reassign_device() in pci_amd_iommu.c, it seems > pci_get_pdev_by_domain() fail to return a correct pci_dev. Here is the > decode of IVRS table. It looks like 03:xx.x is behind a bridge 00:14.4 and > uses this value as an alias ID. That might be a cause. From IVRS, I don't > see anything wrong with 00:14.2 though. Maybe you can add more debug code > to reassign_device(). > > -Wei > > 02 10 00 00 DEV=00:2.0 > 03 00 0f 00 04 01 0f 00 DEV=[0f:1.0, 0f:1.0] > 02 18 00 00 DEV=00:2.0 > 02 00 0e 00 DEV=0e:0.0 > 02 20 00 00 DEV=00:4.0 > 02 00 0d 00 DEV=0d:0.0 > 02 28 00 00 DEV=00:5.0 > 02 00 0c 00 DEV=0c:0.0 > 02 30 00 00 DEV=00:6.0 > 02 00 0b 00 DEV=0b:0.0 > 02 48 00 00 DEV=00:9.0 > 02 00 0a 00 DEV=0a:0.0 > 02 50 00 00 DEV=00:a.0 > 02 00 08 00 00 00 00 00 DEV=08:0.0 > 43 08 09 00 00 00 09 00 04 ff 09 00 DEV=[09:1.0, 09:1f.7] > 02 58 00 00 DEV=00:b.0 > 02 00 04 00 DEV=04:0.0 > 02 08 05 00 DEV=05:1.0 > 02 00 07 00 DEV=07:0.0 > 02 10 05 00 DEV=05:2.0 > 03 00 06 00 04 00 06 00 DEV=06:0.0 > 02 88 00 00 DEV=00:11.0 > 03 90 00 00 04 92 00 00 DEV=[00:12.0, 00:12.2] > 03 98 00 00 04 9a 00 00 DEV=[00:13.0, 00:13.2] > 02 a0 00 d7 DEV=00:14.0 > 02 a1 00 00 DEV=00:14.1 > 02 a2 00 00 DEV=00:14.2 > 02 a3 00 00 DEV=00:14.3 > 02 a4 00 00 DEV=00:14.4 > 43 00 03 00 00 a4 00 00 04 ff 03 00 DEV=[03:0.0, 03:1f.7] > 02 a5 00 00 DEV=00:14.5 > 02 a8 00 00 DEV=00:16.0 > 02 a9 00 00 DEV=00:16.1 > 02 00 01 00 DEV=01:0.0 > 03 b0 00 00 04 b2 00 00 00 00 00 00 DEV=[00:16.0, 00:16.2] > 48 00 00 d7 00 a0 00 02 > 48 00 00 00 07 01 00 01 > > > > -----Original Message----- > From: Sander Eikelenboom [mailto:linux@xxxxxxxxxxxxxx] > Sent: Tuesday, July 13, 2010 5:07 PM > To: xen-devel@xxxxxxxxxxxxxxxxxxx > Cc: Przywara, Andre; Joerg Roedel; Huang2, Wei; Konrad Rzeszutek Wilk; > Jeremy Fitzhardinge Subject: MSI 890FXA-GD70: AMD IOMMU, VmError: Failed to > assign device to IOMMU, (XEN) AMD_IOV: IO_PAGE_FALT: domain:10, device > id:0x900, fault address:0x0 > > Hi All, > > I have bought a MSI 890FXA-GD70, and have been able to enable the IOMMU > with a beta-bios from MSI. I succeed in passing through some pci-e devices > to domU's (PV), but some other devices fail with both PV and HVM domains. > > The message is allways the same "Failed to assign device to IOMMU", with > some added printk's the return code from "iommu.c/assign_device" seems to > be ffffffed instead of the desired 0. > > Devices 00:14.2 and 03:06.* cause the domain(PV and HVM) to fail on > creation with: Failed to assign device to IOMMU (BDF) Devices 09:01.* and > 07:00.0 passthrough fine ( visible and working in pv domU). > > Since it's a beta bios, could it be the IVRS table supplied by the bios is > not complete and therefore the iommu functions only for some devices ? With > amd_iommu_debug it sometimes also prints an "IO_PAGE_FALT": > (XEN) [VT-D]iommu.c:144: SEIK: assign_device: domain 14 (0:14.2)! > (XEN) [VT-D]iommu.c:162: SEIK: assign_device rc: ffffffed ! > (XEN) domctl.c:853:d0 XEN_DOMCTL_assign_device: assign device > (0:14.2) failed (XEN) AMD_IOV: IO_PAGE_FALT: domain:10, device id:0x900, > fault address:0x0 > > > -- > Sander > > > > > > > > Xen version: xen-4.0-testing-pre4 (changeset: 21263:57859775f88f) > Dom0 kernel: 2.6.32.16 pvops (commit > 006bfe8f594370f36f09d8e8ab13692d34e88533) > > Attached: > - xm info > - xm dmesg > - dmesg > - lspci -vvvknn > - Dump of ACPI IVRS table > - Dump of ACPI DSDT table > > > serveerstertje:~/iommu-report# xm pci-list-assignable-devices 0000:0e:00.0 > 0000:09:01.0 0000:09:01.1 > 0000:09:01.2 > 0000:03:06.0 > 0000:03:06.1 > 0000:03:06.2 > 0000:00:14.2 > > > grub menu.lst: > title xen-4.0.1-rc4-pre.gz / Debian GNU/Linux, kernel > 2.6.32.16+xen-2.6.32.x-20100713-a root (hd0,0) > kernel /xen-4.0.1-rc4-pre.gz dom0_mem=768M loglvl=all > loglvl_guest=all com1=115200,8n1 console=com1,vga > iommu=1,pv,verbose,amd_iommu_debug module > /vmlinuz-2.6.32.16+xen-2.6.32.x-20100713-a > root=/dev/mapper/serveerstertje-root ro earlyprintk=xen max_loop=255 > loop_max_part=63 > xen-pciback.hide=(00:14.2)(03:06.0)(03:06.1)(03:06.2)(07:00.0)(09:01.0)(09: >01.1)(09:01.2)(0e:00.0) > pci=resource_alignment=00:14.2;03:06.0;03:06.1;03:06.2;09:01.0;09:01.1;09:0 >1.2 module /initrd.img-2.6.32.16+xen-2.6.32.x-20100713-a > > > > > lspci: > > 00:00.0 Host bridge: ATI Technologies Inc RD890 Northbridge only single > slot PCI-e GFX Hydra part (rev 02) 00:00.2 Generic system peripheral > [0806]: ATI Technologies Inc Device 5a23 00:02.0 PCI bridge: ATI > Technologies Inc RD890 PCI to PCI bridge (PCI express gpp port B) 00:03.0 > PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI express gpp > port C) 00:04.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge > (PCI express gpp port D) 00:05.0 PCI bridge: ATI Technologies Inc RD890 PCI > to PCI bridge (PCI express gpp port E) 00:06.0 PCI bridge: ATI Technologies > Inc RD890 PCI to PCI bridge (PCI express gpp port F) 00:09.0 PCI bridge: > ATI Technologies Inc RD890 PCI to PCI bridge (PCI express gpp port H) > 00:0a.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (external > gfx1 port A) 00:0b.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI > bridge (NB-SB link) 00:11.0 SATA controller: ATI Technologies Inc > SB700/SB800 SATA Controller [IDE mode] (rev 40) 00:12.0 USB Controller: ATI > Technologies Inc SB700/SB800 USB OHCI0 Controller 00:12.2 USB Controller: > ATI Technologies Inc SB700/SB800 USB EHCI Controller 00:13.0 USB > Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 00:13.2 > USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller > 00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 41) 00:14.1 > IDE interface: ATI Technologies Inc SB700/SB800 IDE Controller (rev 40) > 00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) (rev > 40) 00:14.3 ISA bridge: ATI Technologies Inc SB700/SB800 LPC host > controller (rev 40) 00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to > PCI Bridge (rev 40) 00:14.5 USB Controller: ATI Technologies Inc > SB700/SB800 USB OHCI2 Controller 00:15.0 PCI bridge: ATI Technologies Inc > Device 43a0 00:16.0 USB Controller: ATI Technologies Inc SB700/SB800 USB > OHCI0 Controller 00:16.2 USB Controller: ATI Technologies Inc SB700/SB800 > USB EHCI Controller 00:18.0 Host bridge: Advanced Micro Devices [AMD] > Family 10h [Opteron, Athlon64, Sempron] HyperTransport Configuration > 00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h [Opteron, > Athlon64, Sempron] Address Map 00:18.2 Host bridge: Advanced Micro Devices > [AMD] Family 10h [Opteron, Athlon64, Sempron] DRAM Controller 00:18.3 Host > bridge: Advanced Micro Devices [AMD] Family 10h [Opteron, Athlon64, > Sempron] Miscellaneous Control 00:18.4 Host bridge: Advanced Micro Devices > [AMD] Family 10h [Opteron, Athlon64, Sempron] Link Control 03:06.0 USB > Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev > 62) 03:06.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 > Controller (rev 62) 03:06.2 USB Controller: VIA Technologies, Inc. USB 2.0 > (rev 65) 04:00.0 PCI bridge: PLX Technology, Inc. Device 8613 (rev ba) > 05:01.0 PCI bridge: PLX Technology, Inc. Device 8613 (rev ba) 05:02.0 PCI > bridge: PLX Technology, Inc. Device 8613 (rev ba) 06:00.0 SATA controller: > Device 1b4b:9123 (rev 10) 07:00.0 USB Controller: NEC Corporation Device > 0194 (rev 03) 08:00.0 PCI bridge: Texas Instruments XIO2000(A)/XIO2200(A) > PCI Express-to-PCI Bridge (rev 03) 09:01.0 USB Controller: NEC Corporation > USB (rev 43) 09:01.1 USB Controller: NEC Corporation USB (rev 43) > 09:01.2 USB Controller: NEC Corporation USB 2.0 (rev 04) 0a:00.0 USB > Controller: NEC Corporation Device 0194 (rev 03) 0b:00.0 Ethernet > controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express > Gigabit Ethernet controller (rev 03) 0c:00.0 Ethernet controller: Realtek > Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet > controller (rev 03) 0d:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. > Device 3403 0e:00.0 VGA compatible controller: nVidia Corporation GeForce > 8400 GS (rev a1) 0f:00.0 VGA compatible controller: ATI Technologies Inc > Mobility Radeon HD 3450 0f:00.1 Audio device: ATI Technologies Inc RV620 > Audio device [Radeon HD 34xx Series] _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |