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(-)
--
2.25.1