[PATCH 17/33] conf: parse and format <target chip-id='...'/>

Peter Krempa pkrempa at redhat.com
Fri Jan 21 14:30:46 UTC 2022


On Thu, Jan 20, 2022 at 10:52:20 -0300, Daniel Henrique Barboza wrote:
> The 'chip-id' attribute indicates which chip/socket that owns the
> PowerNV pcie-root controller.
> 
> Signed-off-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
> ---
>  docs/formatdomain.rst         |  4 ++++
>  docs/schemas/domaincommon.rng |  5 +++++
>  src/conf/domain_conf.c        | 15 +++++++++++++++
>  src/conf/domain_conf.h        |  1 +
>  4 files changed, 25 insertions(+)
> 
> diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
> index acd9020830..d38c566650 100644
> --- a/docs/formatdomain.rst
> +++ b/docs/formatdomain.rst
> @@ -3896,6 +3896,10 @@ generated by libvirt. :since:`Since 1.2.19 (QEMU only).`
>  ``index``
>     pci-root controllers for pSeries guests use this attribute to record the
>     order they will show up in the guest. :since:`Since 3.6.0`
> +``chip-id``
> +   pcie-root controllers for powernv domains use this attribute to indicate the

``powernv``

> +   chip that will own the controller. A single chip can hold multiple pcie-root
> +   controllers.  :since:`Since 8.1.0`

This doesn't clarify what a 'chip' is.

>  
>  For machine types which provide an implicit PCI bus, the pci-root controller
>  with index=0 is auto-added and required to use PCI devices. pci-root has no

[...]

> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index be8dc82ccf..d1cda8c3f5 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c

[...]

> @@ -9624,6 +9625,16 @@ virDomainControllerDefParseXML(virDomainXMLOption *xmlopt,
>                  virReportError(VIR_ERR_XML_ERROR,
>                                 _("Invalid target index '%i' in PCI controller"),
>                                 def->opts.pciopts.targetIndex);
> +
> +            if ((rc = virXMLPropInt(targetNodes[0], "chip-id", 0, VIR_XML_PROP_NONE,
> +                                    &def->opts.pciopts.chipId,
> +                                   def->opts.pciopts.chipId)) < 0)

Misaligned line.

> +                return NULL;
> +
> +            if ((rc == 1) && def->opts.pciopts.chipId == -1)
> +                virReportError(VIR_ERR_XML_ERROR,
> +                               _("Invalid target chip-id '%i' in PCI controller"),
> +                               def->opts.pciopts.chipId);
>          }
>      } else if (ntargetNodes > 1) {
>          virReportError(VIR_ERR_XML_ERROR, "%s",

With docs and alignment fixed:

Reviewed-by: Peter Krempa <pkrempa at redhat.com>




More information about the libvir-list mailing list