[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 08/11] xen/arm: Handle remove foreign mapping
At 11:55 +0000 on 16 Dec (1387191318), Ian Campbell wrote: > On Mon, 2013-12-16 at 12:51 +0100, Tim Deegan wrote: > > At 19:37 +0000 on 13 Dec (1386959858), Julien Grall wrote: > > > @@ -693,12 +694,21 @@ long do_memory_op(unsigned long cmd, > > > XEN_GUEST_HANDLE_PARAM(void) arg) > > > return rc; > > > } > > > > > > - page = get_page_from_gfn(d, xrfp.gpfn, NULL, P2M_ALLOC); > > > + /* > > > + * If autotranslate guest, (eg pvh), the gfn could be mapped to > > > a mfn > > > + * from foreign domain by the user space tool during domain > > > creation. > > > + * We need to check for that, free it up from the p2m, and > > > release > > > + * refcnt on it. In such a case, page would be NULL and the > > > following > > > + * call would not have refcnt'd the page. > > > + */ > > > + page = get_page_from_gfn(d, xrfp.gpfn, &p2mt, P2M_ALLOC); > > > if ( page ) > > > { > > > guest_physmap_remove_page(d, xrfp.gpfn, page_to_mfn(page), > > > 0); > > > put_page(page); > > > } > > > + else if ( p2m_is_foreign(p2mt) ) > > > + rc = p2m_remove_foreign(d, xrfp.gpfn); > > > > This doesn't seem like the right interface -- having special cases > > like this in the callers is something we slipped into in x86 for a lot > > of the paging/sharing code and it's not nice. I think maybe we can > > just have get_page_from_gfn() DTRT for foreign (and grant) entries. > > DYM guest_physmap_remove_page? I think I mean both get_page_from_gfn and guest_physmap_remove_page. > I asked Mukesh a few times to make get_page_from_gfn handle the foreign > page refcounting and return a valid struct page_info *. Yes, that sounds like a better place for it, if it can be done safely. It would need a bit of care at the existing callers to make sure they're not going to break when handed a foreign-owned page (but they should be audited anyway for this new case). Tim. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |