[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Regression in RMRRs identity mapping for PVH Dom0
On Thu, Sep 24, 2015 at 10:18:54AM +0100, Tim Deegan wrote: > At 15:17 +0800 on 24 Sep (1443107852), Chen, Tiejun wrote: > > On 9/23/2015 11:56 PM, Elena Ufimtseva wrote: > > > Hi > > > > > > There is a regression in RMRR patch > > > 5ae03990c120a7b3067a52d9784c9aa72c0705a6 in > > > new set_identity_p2m_entry. RMRRs are not being mapped in IOMMU for PVH > > > Dom0. > > > This causes pages faults and some long 'hang-like' delays during boot and > > > device assignments. > > > > > > During construct_dom0, in PVH path p2m is being constructed and identity > > > mapped > > > in IOMMU. The p2m type is p2m_mmio_direct and p2m access p2m_rwx. > > > New code used to map RMRRs invoked from rmrr_identity_mapping > > > checks if p2m entry exists with same type and access and if yes, skips > > > iommu > > > mapping. Since there are p2m entries for pvh dom0 iomem, RMRRs are not > > > being > > > mapped in IOMMU. > > > > > > This debug patch attached fixes this and Ill be glad to see if there is a > > > more elegant fix. > > > > Based on your explanation, sounds pvh always creates this mapping > > beforehand, so what about this? > > > > diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c > > index cf8485e..d026845 100644 > > --- a/xen/arch/x86/mm/p2m.c > > +++ b/xen/arch/x86/mm/p2m.c > > @@ -964,7 +964,7 @@ int set_identity_p2m_entry(struct domain *d, > > unsigned long gfn, > > struct p2m_domain *p2m = p2m_get_hostp2m(d); > > int ret; > > > > - if ( !paging_mode_translate(p2m->domain) ) > > + if ( !paging_mode_translate(p2m->domain) || is_pvh_domain(d) ) > > Sorry, but that wouldn't be safe. :( PVH domains need the same > protection as any other paging_mode_translate ones. > > AIUI the problem is that before the call to set_identity_p2m_entry(), > PVH dom0 has a p2m entry covering this range but no IOMMU entry. Is > that right? So the fix will be to make PVH dom0 construction set up > the IOMMU correctly when it sets up the p2m. Yes, thats right. Rework of construct_dom0 and its PVH part should help. > > Cheers, > > Tim. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |