[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH 3/4] x86/p2m : remove checks that forbid adding foreign pages between HVM guests
Two checks in the p2m code forbids sharing physical pages among DomU's by using xc_add_to_physmap_batch with XENMAPSPACE_gmfn_foreign. Just simply remove them in this RFC patch to ask for suggestions on how to properly handle this. This is for the proposal "Allow setting up shared memory areas between VMs from xl config file" (see [1]). [1] https://lists.xenproject.org/archives/html/xen-devel/2017-07/msg03047.html Signed-off-by: Zhongze Liu <blackskygg@xxxxxxxxx> --- Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Julien Grall <julien.grall@xxxxxxx> Cc: xen-devel@xxxxxxxxxxxxx --- xen/arch/x86/mm/p2m.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c index e8a57d118c..3ee4c14ed4 100644 --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -2531,8 +2531,13 @@ int p2m_add_foreign(struct domain *tdom, unsigned long fgfn, * hvm fixme: until support is added to p2m teardown code to cleanup any * foreign entries, limit this to hardware domain only. */ - if ( !is_hardware_domain(tdom) ) - return -EPERM; + /* The following check prevents us from doing a XENMEM_add_to_physmap + * between two domU's. Asking for suggestions on how to remove or + * work around it. + * + * if ( !is_hardware_domain(tdom) ) + * return -EPERM; + */ if ( foreigndom == DOMID_XEN ) fdom = rcu_lock_domain(dom_xen); @@ -2545,9 +2550,14 @@ int p2m_add_foreign(struct domain *tdom, unsigned long fgfn, if ( tdom == fdom ) goto out; - rc = xsm_map_gmfn_foreign(XSM_TARGET, tdom, fdom); - if ( rc ) - goto out; + /* The following check prevents us from doing a XENMEM_add_to_physmap + * between two domU's. Asking for suggestions on how to remove or + * work around it. + * + * rc = xsm_map_gmfn_foreign(XSM_TARGET, tdom, fdom); + * if ( rc ) + * goto out; + */ /* * Take a refcnt on the mfn. NB: following supported for foreign mapping: -- 2.13.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |