Skip to content

Allow setting up shared memory areas between VMs from xl config files

Zhongze Liu xen-devel 4 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest7 patches 37 repliesIn review
  2. v37 patches 21 repliesSuperseded
  3. v26 patches 13 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v16 patches24 repliesSuperseded

Changes in v4 from the cover letter

* Place the sshm info, which should not be readable by guests, under the /libxl/static_shm xs path.
* Add a new subop to xenmem_add_to_physmap() to support the memory sharing, instead of modifying an old one.

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7libxc: add xc_domain_remove_from_physmap to wrap XENMEM_remove_from_physmaptools/libxc/include/xenctrl.h tools/libxc/xc_domain.c+15 -00 replies
2/7xen: xsm: flask: introduce XENMAPSPACE_gmfn_share for memory sharingtools/flask/policy/modules/xen.if xen/arch/arm/mm.c xen/arch/x86/mm.c +6 more+42 -114 replies
3/7libxl: introduce a new structure to represent static shared memory regionstools/libxl/libxl.h tools/libxl/libxl_types.idl+34 -25 replies
4/7libxl: support mapping static shared memory areas during domain creationtools/libxl/Makefile tools/libxl/libxl_arch.h tools/libxl/libxl_arm.c +4 more+479 -16 replies
5/7libxl: support unmapping static shared memory areas during domain destructiontools/libxl/libxl_domain.c tools/libxl/libxl_internal.h tools/libxl/libxl_sshm.c+113 -011 replies
6/7libxl:xl: add parsing code to parse "libxl_static_sshm" from xl config filestools/libxl/Makefile tools/libxl/libxlu_sshm.c tools/libxl/libxlutil.h +1 more+240 -20 replies
7/7docs: documentation about static shared memory regionsdocs/man/xl-static-shm-configuration.pod.5 docs/man/xl.cfg.pod.5.in docs/misc/xenstore-paths.markdown+312 -01 reply

Reviews trailers per patch

2 of 7 patches have a Reviewed-by or Acked-by.

PatchStefano StabelliniWei Liu
1/7R-b A-b
2/7
3/7R-b A-b
4/7
5/7
6/7
7/7

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCH v4 0/7] Allow setting up shared memory areas between VMs from xl config files

Hi,

This series implements the new xl config entry proposed in [1]. Users can use the new config entry to statically setup shared memory areas among VMs that don't have grant table support so that they could communicate with each other through the static shared memory areas.

After several rounds of reviews, the current design is somewhat different from what was described in the original proposal. So please refer to the documentation in [patch 7/7] for the current design.

[1] Proposal to allow setting up shared memory areas between VMs from xl config file:
https://lists.xen.org/archives/html/xen-devel/2017-08/msg03242.html

v3:
* Added the docs
* Changed the order of patches to reflect their internal dependencies
* Fixed the error handling when memory mapping are done but the xs trasaction fails
* Changed the xsm hooks to lookup the current domain themselves instead of getting it as a parameter
v4:
* Place the sshm info, which should not be readable by guests, under the /libxl/static_shm xs path.
* Add a new subop to xenmem_add_to_physmap() to support the memory sharing, instead of modifying an old one.

Cheers,

Zhongze Liu (7):
libxc: add xc_domain_remove_from_physmap to wrap
XENMEM_remove_from_physmap
xen: xsm: flask: introduce XENMAPSPACE_gmfn_share for memory sharing
libxl: introduce a new structure to represent static shared memory
regions
libxl: support mapping static shared memory areas during domain
creation
libxl: support unmapping static shared memory areas during domain
destruction
libxl:xl: add parsing code to parse "libxl_static_sshm" from xl config
files
docs: documentation about static shared memory regions

 docs/man/xl-static-shm-configuration.pod.5 | 257 +++++++++++++++
 docs/man/xl.cfg.pod.5.in                   |   8 +
 docs/misc/xenstore-paths.markdown          |  47 +++
 tools/flask/policy/modules/xen.if          |   2 +
 tools/libxc/include/xenctrl.h              |   4 +
 tools/libxc/xc_domain.c                    |  11 +
 tools/libxl/Makefile                       |   4 +-
 tools/libxl/libxl.h                        |   4 +
 tools/libxl/libxl_arch.h                   |   6 +
 tools/libxl/libxl_arm.c                    |  15 +
 tools/libxl/libxl_create.c                 |  27 ++
 tools/libxl/libxl_domain.c                 |   5 +
 tools/libxl/libxl_internal.h               |  16 +
 tools/libxl/libxl_sshm.c                   | 503 +++++++++++++++++++++++++++++
 tools/libxl/libxl_types.idl                |  32 +-
 tools/libxl/libxl_x86.c                    |  19 ++
 tools/libxl/libxlu_sshm.c                  | 210 ++++++++++++
 tools/libxl/libxlutil.h                    |   6 +
 tools/xl/xl_parse.c                        |  24 +-
 xen/arch/arm/mm.c                          |   8 +-
 xen/arch/x86/mm.c                          |   4 +
 xen/include/public/memory.h                |   4 +
 xen/include/xsm/dummy.h                    |   6 +
 xen/include/xsm/xsm.h                      |   6 +
 xen/xsm/dummy.c                            |   1 +
 xen/xsm/flask/hooks.c                      |   7 +
 xen/xsm/flask/policy/access_vectors        |   5 +
 27 files changed, 1235 insertions(+), 6 deletions(-)
 create mode 100644 docs/man/xl-static-shm-configuration.pod.5
 create mode 100644 tools/libxl/libxl_sshm.c
 create mode 100644 tools/libxl/libxlu_sshm.c
Signature · 7 lines
2.16.1


_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel