[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 00/17] XSM changes for split hardware / control domain
Theses are the broad changes needed for a split hardware / control domain. I'm mainly focused on the XSM changes, but there are additional xenstored and init-dom0less changes to make things work. An earlier posting gave device_model privileges to hardware domain. For this posting, it was split out into a new capability. This way the operator can choose where to run the device models without making the hardware domain have the permissions. The first patch add XSM_HW_PRIV for the hardware hypercalls. In this posting, the control domain cannot call these hypercalls. There is also a new XEN_DOMCTL_CDF_not_hypercall_target flag. This is used to mark a domain that cannot be the target of hypercalls. This is useful for ensuring a domain has freedom from interference from control and device model domains. The control domain can still issue XSM_DM_PRIV hypercalls. SILO is changed to allow hardware and xenstore to service domUs. Xenstore and hardware will use grants for PV interfaces. xenstored runs in the xenstore domain. C xenstored is updated to read the event channel from the domU's grant. C xenstored must also be used since it uses grants instead of foreign mapping. init-dom0less is run from control domain. auto-introduction of domains is needed for this to work. init-dom0less issues xs_introduce_domain over the xenbus, so it must be functional for control to issue it. The special casing in "xsm/dummy: Allow HVMOP_get_param for control domain" is needed for init-dom0less to know if it should or should not configure xenstore for dom0less xen.enhanced = "no-xenstore". There are some cosmetic errors from xl related to SYSCTL_physinfo. libxl: error: libxl_utils.c:818:libxl_cpu_bitmap_alloc: failed to retrieve the maximum number of cpus Jason Andryuk (17): xen/xsm: Add XSM_HW_PRIV xsm/silo: Support hardware & xenstore domains xen: Add DOMAIN_CAPS_DEVICE_MODEL & XEN_DOMCTL_CDF_device_model xen: Introduce XEN_DOMCTL_CDF_not_hypercall_target xen/dom0less: Workaround XSM for evtchn_alloc_unbound xen/xsm: Expand XSM_XS_PRIV for untargetable domains xsm/dummy: Allow HVMOP_get_param for control domain public/io: xs_wire: Include event channel in interface page xen/dom0less: store xenstore event channel in page tools/xenstored: Read event channel from xenstored page xen: Add capabilities to get_domain_state tools/manage: Expose domain capabilities tools/xenstored: Delay firing special watches tools/xenstored: Auto-introduce domains tools/init-dom0less: Factor out xenstore setup tools/init-dom0less: Configure already-introduced domains tools/init-dom0less: Continue on error docs/misc/arm/device-tree/booting.txt | 6 ++ tools/helpers/init-dom0less.c | 78 +++++++++++++++---------- tools/include/xenmanage.h | 14 ++++- tools/libs/manage/core.c | 21 +++++-- tools/ocaml/libs/xc/xenctrl.ml | 2 + tools/ocaml/libs/xc/xenctrl.mli | 2 + tools/xenstored/core.c | 7 ++- tools/xenstored/core.h | 1 + tools/xenstored/domain.c | 65 ++++++++++++++++----- tools/xenstored/domain.h | 2 +- xen/arch/arm/domain.c | 4 +- xen/arch/arm/platform_hypercall.c | 2 +- xen/arch/x86/msi.c | 2 +- xen/arch/x86/physdev.c | 12 ++-- xen/arch/x86/platform_hypercall.c | 2 +- xen/common/device-tree/dom0less-build.c | 25 ++++++++ xen/common/domain.c | 11 +++- xen/drivers/passthrough/pci.c | 5 +- xen/drivers/pci/physdev.c | 2 +- xen/include/public/bootfdt.h | 18 +++++- xen/include/public/domctl.h | 13 ++++- xen/include/public/io/xs_wire.h | 7 +++ xen/include/xen/sched.h | 21 +++++++ xen/include/xsm/dummy.h | 34 +++++++---- xen/include/xsm/xsm.h | 1 + xen/xsm/silo.c | 15 ++++- 26 files changed, 285 insertions(+), 87 deletions(-) -- 2.50.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |