|
|
|
|
|
|
|
|
|
|
xen-users
[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
|
|
|
|
|