This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[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,

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>