[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] About VT-d on ASUS P6T
>So there will be some devices that do not work while others work - can I >figure out which devices are affected by the incorrect RMRR? "iommu=verbose" will list all RMRRs and their relevant devices. >In addition, only setting iommu=passtrough caused XEN to disable VT-d >completely, altough some devices actually can be passtroughed to the >domU perfectly. Yes, only setting iommu=passthrough causes Xen to disable VT-d, because acpi_parse_one_rmrr returns "-EFAULT" when a RMRR is incorrect. Indeed, incorrect RMRR only impacts its relevant device, but it requires setting iommu=passthrough, and also it causes problems when assign corresponding devices. It's an "obvious" issue of BIOS. There is not a clean way to handle this BIOS issue in Xen upstream. Of course, you can hack it by yourself to work for you. But I encourage you to report it to the vendor and get it fixed in BIOS. Regards, Weidong Am 12.05.2010 03:54, schrieb Han, Weidong: > Your code changes just let xen not disable VT-d, but actually > "iommu=passthrough" avoids problems of incorrect RMRR. This option makes dom0 > not use VT-d, therefore incorrect RMRR won't be used by device. But if you > assign the device whose RMRR incorrect to guest, it still causes problems. > > Regards, > Weidong > > -----Original Message----- > From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx > [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Felix Kuperjans > Sent: Tuesday, May 11, 2010 6:09 PM > To: xen-devel@xxxxxxxxxxxxxxxxxxx > Subject: [Xen-devel] About VT-d on ASUS P6T > > Hi, > > as I posted on xen-users, I've successfully used pci passtrough on an ASUS > P6T mainboard which is known to have really buggy RMRR tables. > > I needed the iommu=passtrough and iommu_inclusive_mapping=1 command line > options, combined with a little change to the RMRR parsing code: > > dmar.c: > > @@ -559,8 +558,7 @@ > dprintk(XENLOG_WARNING VTDPREFIX, > " The RMRR (%"PRIx64", %"PRIx64") is incorrect!\n", > rmrru->base_address, rmrru->end_address); > - xfree(rmrru); > - ret = -EFAULT; > + acpi_register_rmrr_unit(rmrru); > } > else > { > > This way, the condition that causes the error printed above, does not lead to > an abortion of VT-d code, but instead registers the RMRR unit as if it was > correct. > VT-d is working properly afterwards and I've tested some devices successfully. > > Probably, you would prefer to choose the action based on some command line > option (like iommu_inclusive_mapping=1) instead of ignoring this error by > default. > > Regards, > Felix > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |