mbox series

[v1,00/13] Static shared memory on dom0less system

Message ID 20220311061123.1883189-1-Penny.Zheng@arm.com (mailing list archive)
Headers show
Series Static shared memory on dom0less system | expand

Message

Penny Zheng March 11, 2022, 6:11 a.m. UTC
The static shared memory device tree nodes allow users to statically set up
shared memory on dom0less system, enabling domains to do shm-based
communication.

The new feature is driven by the need of finding a way to build up
communication channels on dom0less system, since the legacy ways including
grant table, etc are all absent there.

It was inspired by the patch serie of ["xl/libxl-based shared mem](
https://marc.info/?l=xen-devel&m=154404821731186ory").

Looking into related [design link](
https://lore.kernel.org/all/a50d9fde-1d06-7cda-2779-9eea9e1c0134@xen.org/T/)
for more details.

Penny Zheng (13):
  xen/arm: introduce static shared memory
  xen/arm: introduce a special domain DOMID_SHARED
  xen/arm: allocate static shared memory to dom_shared
  xen/arm: add P2M type parameter in guest_physmap_add_pages
  xen/arm: introduce get_pages_from_gfn
  xen/arm: set up shared memory foreign mapping for borrower domain
  xen/arm: create shared memory nodes in guest device tree
  xen/arm: destroy static shared memory when de-construct domain
  xen/arm: enable statically shared memory on Dom0
  xen/arm: allocate static shared memory to a specific owner domain
  xen/arm: store shm-info for deferred foreign memory map
  xen/arm: defer foreign memory map in shm_init_late
  xen/arm: unmap foreign memory mapping when destroyed domain is owner
    domain

 docs/misc/arm/device-tree/booting.txt | 118 +++++++
 xen/arch/arm/Kconfig                  |   7 +
 xen/arch/arm/bootfdt.c                |  52 +++
 xen/arch/arm/domain.c                 | 117 ++++++-
 xen/arch/arm/domain_build.c           | 445 +++++++++++++++++++++++++-
 xen/arch/arm/include/asm/domain.h     |  33 ++
 xen/arch/arm/include/asm/p2m.h        |  42 ++-
 xen/arch/arm/include/asm/setup.h      |   3 +
 xen/arch/arm/setup.c                  |  28 ++
 xen/common/domain.c                   |  11 +-
 xen/common/page_alloc.c               |   5 +
 xen/common/vsprintf.c                 |   9 +-
 xen/include/public/xen.h              |   6 +
 xen/include/xen/sched.h               |   2 +
 14 files changed, 864 insertions(+), 14 deletions(-)