[libvirt] [PATCH v3 11/16] Add XML config for resource partitions
Michal Privoznik
mprivozn at redhat.com
Thu Apr 11 10:02:40 UTC 2013
On 10.04.2013 12:08, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
> docs/formatdomain.html.in | 26 ++++++++++
> docs/schemas/domaincommon.rng | 12 +++++
> src/conf/domain_conf.c | 78 ++++++++++++++++++++++++++++
> src/conf/domain_conf.h | 7 +++
> tests/domainschemadata/domain-lxc-simple.xml | 3 ++
> 5 files changed, 126 insertions(+)
>
> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
> index d400e35..5551187 100644
> --- a/docs/formatdomain.html.in
> +++ b/docs/formatdomain.html.in
> @@ -716,6 +716,32 @@
> </dl>
>
>
> + <h3><a name="resPartition">Resource partitioning</a></h3>
> +
> + <p>
> + Hypervisors may allow for virtual machines to be placed into
> + resource partitions, potentially with nesting of said partitions.
> + The <code>resource</code> element groups together configuration
> + related to resource partitioning. It currently supports a child
> + element <code>partition</code> whose content defines the path
> + of the resource partition in which to place the domain. If no
> + partition is listed, then the domain will be placed in a default
> + partition.
> + </p>
We should mention here the fact you are stating in the next patch:
The partition path has to exists and it's admin responsibility to
pre-create it.
> +<pre>
> + ...
> + <resource>
> + <partition>/virtualmachines/production</partition>
> + </resource>
> + ...
> +</pre>
> +
> + <p>
> + Resource partitions are currently supported by the QEMU and
> + LXC drivers, which map partition paths onto cgroups directories,
> + in all mounted controllers. <span class="since">Since 1.0.5</pan>
> + </p>
> +
> <h3><a name="elementsCPU">CPU model and topology</a></h3>
>
> <p>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index e00a532..ae1dfd3 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -10255,6 +10300,25 @@ virDomainDefParseXML(xmlDocPtr xml,
> }
> VIR_FREE(nodes);
>
> + /* Extract numatune if exists. */
> + if ((n = virXPathNodeSet("./resource", ctxt, &nodes)) < 0) {
> + virReportError(VIR_ERR_INTERNAL_ERROR,
> + "%s", _("cannot extract resource nodes"));
> + goto error;
> + }
> +
> + if (n > 1) {
> + virReportError(VIR_ERR_XML_ERROR, "%s",
> + _("only one resource element is supported"));
> + VIR_FREE(nodes);
> + goto error;
> + }
> +
> + if (n &&
> + !(def->resource = virDomainResourceDefParse(nodes[0], ctxt)))
> + goto error;
> + VIR_FREE(nodes);
> +
Even though there is no real leak here, it seems a bit odd to
VIR_FREE(nodes) in the 2nd 'if' statement, but not this in one. For
consistency we should drop the fly-away VIR_FREE().
> if ((n = virXPathNodeSet("./features/*", ctxt, &nodes)) < 0)
> goto error;
>
> @@ -14870,6 +14934,17 @@ virDomainIsAllVcpupinInherited(virDomainDefPtr def)
> }
> }
>
ACK
Michal
More information about the libvir-list
mailing list