mbox series

[v4,0/9] dom0less PV drivers

Message ID alpine.DEB.2.22.394.2203311735380.2910984@ubuntu-linux-20-04-desktop (mailing list archive)
Headers show
Series dom0less PV drivers | expand

Message

Stefano Stabellini April 1, 2022, 12:38 a.m. UTC
Hi all,

Currently dom0less guests cannot use PV drivers because they don't have
access to xenstore. Also, the hypervisor node in device tree is missing
so they don't detect that they are running on Xen (thus, they don't try
to enable PV interfaces.)

This patch series enables dom0less guests (on ARM) to use PV drivers.

Instead of initializing xenstore immediately at boot, dom0less guests
get access to xenstore later. They delay the initialization until they
receive a notification via the xenstore event channel (which is
available at boot.)

An example workflow is as follows:
- all domains start in parallel, dom0less guests are immediately running
- when dom0 is up and running, the init-dom0less application is called
- dom0less guests receive the notification and initialize xenstore
- now xl network-attach/disk-attach works as expected for dom0less domUs

The patch series introduces a new dom0less device tree option
"xen,enhanced" (in the Xen device tree) to specify whether PV interfaces
should be enabled/disabled for the dom0less guest.

This patch series is based on Daniel P. Smith's "Introduce XSM ability
for domain privilege escalation".

Cheers,

Stefano


Luca Miccio (3):
      xen/arm: configure dom0less domain for enabling xenstore after boot
      xenstored: send an evtchn notification on introduce_domain
      tools: add example application to initialize dom0less PV drivers

Stefano Stabellini (6):
      xen/dt: dt_property_read_string should return -ENODATA on !length
      xen/arm: implement domU extended regions
      xen/arm: temporarily elevate idle_domain privileged during create_domUs
      xen: export evtchn_alloc_unbound
      xen: introduce xen,enhanced dom0less property
      docs: document dom0less + PV drivers

 docs/features/dom0less.pandoc         |  43 ++++-
 docs/misc/arm/device-tree/booting.txt |  18 ++
 tools/helpers/Makefile                |  13 ++
 tools/helpers/init-dom0less.c         | 323 ++++++++++++++++++++++++++++++++++
 tools/xenstore/xenstored_domain.c     |   3 +
 xen/arch/arm/domain_build.c           |  91 +++++++++-
 xen/arch/arm/include/asm/kernel.h     |   3 +
 xen/common/device_tree.c              |   2 +-
 xen/common/event_channel.c            |   2 +-
 xen/include/xen/event.h               |   3 +
 10 files changed, 493 insertions(+), 8 deletions(-)
 create mode 100644 tools/helpers/init-dom0less.c