Message ID | 20170819101137.4101-1-blackskygg@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sat, 19 Aug 2017, Zhongze Liu wrote: > This is for the proposal "Allow setting up shared memory areas between VMs > from xl config file". See: > > https://lists.xenproject.org/archives/html/xen-devel/2017-07/msg03047.html > > Then plan is to use XENMEM_add_to_physmap_batch to map the shared pages from > one domU to another and use XENMEM_remove_from_physmap to cancel the sharing. > A wrapper to XENMEM_add_to_physmap_batch was added in the following commit: > > commit 20e725e9364cff4a29945f66986ecd88cca8743d > > Now add the wrapper to XENMEM_remove_from_physmap. > > Signed-off-by: Zhongze Liu <blackskygg@gmail.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > Cc: Ian Jackson <ian.jackson@eu.citrix.com> > Cc: Wei Liu <wei.liu2@citrix.com> > Cc: Stefano Stabellini <sstabellini@kernel.org> > Cc: Julien Grall <julien.grall@arm.com> > Cc: xen-devel@lists.xen.org > --- > v2: add the signed-off message > --- > tools/libxc/include/xenctrl.h | 4 ++++ > tools/libxc/xc_domain.c | 11 +++++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h > index c7710b8f36..0ff15a9255 100644 > --- a/tools/libxc/include/xenctrl.h > +++ b/tools/libxc/include/xenctrl.h > @@ -1381,6 +1381,10 @@ int xc_domain_add_to_physmap_batch(xc_interface *xch, > xen_pfn_t *gfpns, > int *errs); > > +int xc_domain_remove_from_physmap(xc_interface *xch, > + domid_t domid, > + xen_pfn_t gpfn); > + > int xc_domain_populate_physmap(xc_interface *xch, > uint32_t domid, > unsigned long nr_extents, > diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c > index 3bab4e8bab..e6b32792c0 100644 > --- a/tools/libxc/xc_domain.c > +++ b/tools/libxc/xc_domain.c > @@ -1077,6 +1077,17 @@ out: > return rc; > } > > +int xc_domain_remove_from_physmap(xc_interface *xch, > + domid_t domid, > + xen_pfn_t gpfn) > +{ > + struct xen_remove_from_physmap xrfp = { > + .domid = domid, > + .gpfn = gpfn, > + }; > + return do_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, sizeof(xrfp)); > +} > + > int xc_domain_claim_pages(xc_interface *xch, > uint32_t domid, > unsigned long nr_pages) > -- > 2.14.0 >
diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h index c7710b8f36..0ff15a9255 100644 --- a/tools/libxc/include/xenctrl.h +++ b/tools/libxc/include/xenctrl.h @@ -1381,6 +1381,10 @@ int xc_domain_add_to_physmap_batch(xc_interface *xch, xen_pfn_t *gfpns, int *errs); +int xc_domain_remove_from_physmap(xc_interface *xch, + domid_t domid, + xen_pfn_t gpfn); + int xc_domain_populate_physmap(xc_interface *xch, uint32_t domid, unsigned long nr_extents, diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c index 3bab4e8bab..e6b32792c0 100644 --- a/tools/libxc/xc_domain.c +++ b/tools/libxc/xc_domain.c @@ -1077,6 +1077,17 @@ out: return rc; } +int xc_domain_remove_from_physmap(xc_interface *xch, + domid_t domid, + xen_pfn_t gpfn) +{ + struct xen_remove_from_physmap xrfp = { + .domid = domid, + .gpfn = gpfn, + }; + return do_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, sizeof(xrfp)); +} + int xc_domain_claim_pages(xc_interface *xch, uint32_t domid, unsigned long nr_pages)
This is for the proposal "Allow setting up shared memory areas between VMs from xl config file". See: https://lists.xenproject.org/archives/html/xen-devel/2017-07/msg03047.html Then plan is to use XENMEM_add_to_physmap_batch to map the shared pages from one domU to another and use XENMEM_remove_from_physmap to cancel the sharing. A wrapper to XENMEM_add_to_physmap_batch was added in the following commit: commit 20e725e9364cff4a29945f66986ecd88cca8743d Now add the wrapper to XENMEM_remove_from_physmap. Signed-off-by: Zhongze Liu <blackskygg@gmail.com> Cc: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Wei Liu <wei.liu2@citrix.com> Cc: Stefano Stabellini <sstabellini@kernel.org> Cc: Julien Grall <julien.grall@arm.com> Cc: xen-devel@lists.xen.org --- v2: add the signed-off message --- tools/libxc/include/xenctrl.h | 4 ++++ tools/libxc/xc_domain.c | 11 +++++++++++ 2 files changed, 15 insertions(+)