[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v6][PATCH 2/2] xen:vtd: missing RMRR mapping while share EPT
On 2014/9/19 15:10, Jan Beulich wrote: On 19.09.14 at 08:50, <tiejun.chen@xxxxxxxxx> wrote:On 2014/9/19 14:26, Jan Beulich wrote:On 19.09.14 at 03:20, <tiejun.chen@xxxxxxxxx> wrote:(XEN) [VT-D]dmar.c:807: found ACPI_DMAR_RMRR: (XEN) [VT-D]dmar.c:383: endpoint: 0000:00:14.0 (XEN) [VT-D]dmar.c:676: RMRR region: base_addr ab805000 end_address ab818fff (XEN) [VT-D]dmar.c:807: found ACPI_DMAR_RMRR: (XEN) [VT-D]dmar.c:383: endpoint: 0000:00:02.0 (XEN) [VT-D]dmar.c:676: RMRR region: base_addr ad000000 end_address af7fffffSo how does passing through either of these work for a guest with 4Gb or more of memory assigned with just the original 2 patches (and with shared page tables)? There ought to be a collision detected when trying to do the identity mapping.Do you mean this point, mfn_valid(mfn)? If yes, I remember we made agreement previously about how to cover three cases including this scenario: " #1: !mfn_valid(mfn) We can create those mapping safely. #2: mfn_x(mfn) == gfn && p2mt == p2m_mmio_direct && a == p2m_access_rw We already have these matched mappings. #3: Others Return with that waring message: "Cannot identity map d%d:%lx, already mapped to %lx but mismatch.\n" " And this is just as we did in patch #1: + + if ( !mfn_valid(mfn) ) + ret = p2m_set_entry(p2m, gfn, _mfn(gfn), PAGE_ORDER_4K, p2m_mmio_direct, + p2m_access_rw); + else if ( mfn_x(mfn) == gfn && + p2mt == p2m_mmio_direct && + a == p2m_access_rw ) + ret = 0; + else + printk(XENLOG_G_WARNING + "Cannot identity map d%d:%lx, already mapped to %lx.\n", + d->domain_id, gfn, mfn_x(mfn));Right, but the important point is that when the warning gets printed -EBUSY gets returned, i.e. in the end the device assignment is to fail. Are you seeing the warning when creating a large enough guest? If My platform just own 4G memory, so after I try to set 'memory=15360' in domu.cfg, I can't boot such a VM: # xl cr domu.cfg Parsing config from domu.cfglibxl: error: libxl.c:4202:libxl_set_memory_target: new target 0 for dom0 is below the minimum threshhold ... failed to free memory for the domain not - can you explain why you don't see it (as I can't)? Do you know exactly how to test this case as you expect here? Then I can take a further look to step on your question. Or I guess you are hinting something wrong should be happened but I never realize that previously. Thanks Tiejun Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |