[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v9 2/5] xen: add parent_domid field to createdomain domctl
When creating a domain that will be used as a VM fork some information is required to set things up properly, like the max_vcpus count. Instead of the toolstack having to gather this information for each fork in a separate hypercall we can just include the parent domain's id in the createdomain domctl so that Xen can copy the setting without the extra toolstack queries. Signed-off-by: Tamas K Lengyel <tamas.lengyel@xxxxxxxxx> --- xen/common/domctl.c | 14 ++++++++++++++ xen/include/public/domctl.h | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/xen/common/domctl.c b/xen/common/domctl.c index a69b3b59a8..22aceb3860 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -489,6 +489,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) case XEN_DOMCTL_createdomain: { domid_t dom; + domid_t parent_dom; static domid_t rover = 0; dom = op->domain; @@ -515,6 +516,19 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) rover = dom; } + parent_dom = op->u.createdomain.parent_domid; + if ( parent_dom ) + { + struct domain *pd = rcu_lock_domain_by_id(parent_dom); + + ret = -EINVAL; + if ( !pd ) + break; + + op->u.createdomain.max_vcpus = pd->max_vcpus; + rcu_unlock_domain(pd); + } + d = domain_create(dom, &op->u.createdomain, false); if ( IS_ERR(d) ) { diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h index fec6f6fdd1..251cc40ef6 100644 --- a/xen/include/public/domctl.h +++ b/xen/include/public/domctl.h @@ -38,7 +38,7 @@ #include "hvm/save.h" #include "memory.h" -#define XEN_DOMCTL_INTERFACE_VERSION 0x00000012 +#define XEN_DOMCTL_INTERFACE_VERSION 0x00000013 /* * NB. xen_domctl.domain is an IN/OUT parameter for this operation. @@ -92,6 +92,7 @@ struct xen_domctl_createdomain { uint32_t max_evtchn_port; int32_t max_grant_frames; int32_t max_maptrack_frames; + domid_t parent_domid; struct xen_arch_domainconfig arch; }; -- 2.20.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |