[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] RMRR Fix Design for Xen
On Fri, Dec 19, 2014 at 1:21 AM, Tiejun Chen <tiejun.chen@xxxxxxxxx> wrote: > RMRR Fix Design for Xen > > This design is a goal to fix RMRR for Xen. It includes four sectors as > follows: > > * Background > * What is RMRR > * Current RMRR Issues > * Design Overview > > We hope this can help us to understand current problem then figure out a > clean and better solution everyone can agree now to go forward. > > Background > ========== > > We first identified this RMRR defect when trying to pass-through IGD device, > which can be simply fixed by adding an identity mapping in case of shared > EPT table. However along with the community discussion, it boiled down to > a more general RMRR problem, i.e. the identity mapping is brute-added > in hypervisor, w/o considering whether conflicting with an existing guest > PFN ranges. As a general solution we need invent a new mechanism so > reserved ranges allocated by hypervisor can be exported to the user space > toolstack and hvmloader, so conflict can be detected when constructing > guest PFN layout, with best-effort avoidance policies to further help. > > What is RMRR > ============ > > RMRR is a acronym for Reserved Memory Region Reporting. > > BIOS may report each such reserved memory region through the RMRR structures, > along with the devices that requires access to the specified reserved memory > region. Reserved memory ranges that are either not DMA targets, or memory > ranges that may be target of BIOS initiated DMA only during pre-boot phase > (such as from a boot disk drive) must not be included in the reserved memory > region reporting. The base address of each RMRR region must be 4KB aligned and > the size must be an integer multiple of 4KB. BIOS must report the RMRR > reported > memory addresses as reserved in the system memory map returned through methods > suchas INT15, EFI GetMemoryMap etc. The reserved memory region reporting > structures are optional. If there are no RMRR structures, the system software > concludes that the platform does not have any reserved memory ranges that are > DMA targets. > > The RMRR regions are expected to be used for legacy usages (such as USB, UMA > Graphics, etc.) requiring reserved memory. Platform designers shouldavoid or > limit use of reserved memory regions since these require system software to > create holes in the DMA virtual address range available to system software and > its drivers. > > The following is grabbed from my BDW: > > (XEN) [VT-D]dmar.c:834: found ACPI_DMAR_RMRR: > (XEN) [VT-D]dmar.c:679: RMRR region: base_addr ab80a000 end_address ab81dfff > (XEN) [VT-D]dmar.c:834: found ACPI_DMAR_RMRR: > (XEN) [VT-D]dmar.c:679: RMRR region: base_addr ad000000 end_address af7fffff > > Here USB occupies 0xab80a000:0xab81dfff, IGD owns 0xad000000:0xaf7fffff. > > Note there are zero or more Reserved Memory Region Reporting (RMRR) in one > given > platform. And multiple devices may share one RMRR range. Additionally RMRR can > go anyplace. Tiejun, Thanks for this document -- such a document is really helpful in figuring out the best way to architect the solution to a problem. I hope you don't mind me asking a few additional questions here. You've said that: * RMRR is a range used by devices (typically legacy devices such as USB, but apparently also newer devices like IGD) * RMRR ranges are reported by BIOSes * RMRR ranges should be avoided by the guest. I'm still missing a few things, however. * In the case of passing through a virtual device, how does the "range" apply wrt gpfn space and mfn space? I assume in example above, the range [ab80a000,ab81dfff] corresponds to an mfn range. When passing through this device to the guest, do pfns [ab80a000,ab81dfff] need to be mapped to the same mfn range (i.e., 1-1 mapping), or can they be mapped from somewhere else in pfn space? * You've described the range, but later on you talk about Xen "creating" RMRR mappings. What does this mean? Are there registers that need to be written? Do the ept / IOMMU tables need some kind of special flags? Thanks, -George _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |