[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [Xen-users] Re: VT-D RMRR is incorrect



Ross Philipson schrieb:
Hi folks,

This sounds a lot like an issue I am working on right now. A recent change to the vtd code changed the way the 1 to 1 page mapping for dom0 is done (look at intel_iommu_domain_init() for dom0). The change was to query the e820 map for memory regions that were usable RAM and only map those into the iommus for dom0. Thus reserved regions were no longer mapped in. When the RMRR values do not report the correct values for required 1 to 1 reserved memory regions, the needed regions do not get mapped in. Thus device DMA to these regions causes vtd faults and in out case a hang. It is indeed a BIOS bug; perhaps this is the same issue you are seeing?

Anyway, I am working on a workaround that I will be pushing upstream this week. A parameter will allow you to include reserved memory regions in the mappings. It is not ideal (less secure) but better than hanging or crashing…


Hi Ross,

I tried your patch from you other post, but even with the new parameter enabled I still get the DMAR error messages and vt-d being disabled:

(XEN) Command line: dom0_mem=1024M iommu=1 iommu_include_reserved=1
...
(XEN) [VT-D]dmar.c:473: Host address width 39
(XEN) [VT-D]dmar.c:482: found ACPI_DMAR_DRHD
(XEN) [VT-D]dmar.c:337: dmaru->address = fbfff000
(XEN) [VT-D]dmar.c:288: found endpoint: bdf = 0:1b.0
(XEN) [VT-D]dmar.c:482: found ACPI_DMAR_DRHD
(XEN) [VT-D]dmar.c:337: dmaru->address = fbffe000
(XEN) [VT-D]dmar.c:294: found IOAPIC: bdf = f0:1f.7
(XEN) [VT-D]dmar.c:294: found IOAPIC: bdf = 0:13.0
(XEN) [VT-D]dmar.c:346: found INCLUDE_ALL
(XEN) [VT-D]dmar.c:486: found ACPI_DMAR_RMRR
(XEN) [VT-D]dmar.c:288: found endpoint: bdf = 0:1d.0
(XEN) [VT-D]dmar.c:288: found endpoint: bdf = 0:1d.1
(XEN) [VT-D]dmar.c:288: found endpoint: bdf = 0:1d.2
(XEN) [VT-D]dmar.c:288: found endpoint: bdf = 0:1d.7
(XEN) [VT-D]dmar.c:288: found endpoint: bdf = 0:1a.0
(XEN) [VT-D]dmar.c:288: found endpoint: bdf = 0:1a.1
(XEN) [VT-D]dmar.c:288: found endpoint: bdf = 0:1a.2
(XEN) [VT-D]dmar.c:288: found endpoint: bdf = 0:1a.7
(XEN) [VT-D]dmar.c:486: found ACPI_DMAR_RMRR
(XEN) [VT-D]dmar.c:376: RMRR error: base_addr bf7dc000 end_address bf7dbfff
(XEN) Failed to parse ACPI DMAR.  Disabling VT-d.


Best regards,
   Christian


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.