On 01/19/2013 12:06 AM, Peter Krempa wrote:
> ---
> src/conf/capabilities.c | 43 +++++++++++++++++++++++++------------------
> 1 file changed, 25 insertions(+), 18 deletions(-)
>
> diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
> index 365c511..0d2512e 100644
> --- a/src/conf/capabilities.c
> +++ b/src/conf/capabilities.c
> @@ -678,6 +678,28 @@ virCapabilitiesDefaultGuestEmulator(virCapsPtr caps,
> return NULL;
> }
>
> +static void
> +virCapabilitiesFormatNUMATopology(virBufferPtr xml,
> + size_t ncells,
> + virCapsHostNUMACellPtr *cells)
> +{
> + int i;
> + int j;
> +
> + virBufferAddLit(xml, " <topology>\n");
> + virBufferAsprintf(xml, " <cells num='%zu'>\n", ncells);
> + for (i = 0; i < ncells; i++) {
> + virBufferAsprintf(xml, " <cell id='%d'>\n", cells[i]->num);
> + virBufferAsprintf(xml, " <cpus num='%d'>\n",
> cells[i]->ncpus);
> + for (j = 0; j < cells[i]->ncpus; j++)
> + virBufferAsprintf(xml, " <cpu id='%d'/>\n",
> + cells[i]->cpus[j]);
> + virBufferAddLit(xml, " </cpus>\n");
> + virBufferAddLit(xml, " </cell>\n");
> + }
> + virBufferAddLit(xml, " </cells>\n");
> + virBufferAddLit(xml, " </topology>\n");
> +}
>
> /**
> * virCapabilitiesFormatXML:
> @@ -752,24 +774,9 @@ virCapabilitiesFormatXML(virCapsPtr caps)
> virBufferAddLit(&xml, " </migration_features>\n");
> }
>
> - if (caps->host.nnumaCell) {
> - virBufferAddLit(&xml, " <topology>\n");
> - virBufferAsprintf(&xml, " <cells num='%zu'>\n",
> - caps->host.nnumaCell);
> - for (i = 0 ; i < caps->host.nnumaCell ; i++) {
> - virBufferAsprintf(&xml, " <cell id='%d'>\n",
> - caps->host.numaCell[i]->num);
> - virBufferAsprintf(&xml, " <cpus num='%d'>\n",
> - caps->host.numaCell[i]->ncpus);
> - for (j = 0 ; j < caps->host.numaCell[i]->ncpus ; j++)
> - virBufferAsprintf(&xml, " <cpu id='%d'/>\n",
> - caps->host.numaCell[i]->cpus[j]);
> - virBufferAddLit(&xml, " </cpus>\n");
> - virBufferAddLit(&xml, " </cell>\n");
> - }
> - virBufferAddLit(&xml, " </cells>\n");
> - virBufferAddLit(&xml, " </topology>\n");
> - }
> + if (caps->host.nnumaCell)
> + virCapabilitiesFormatNUMATopology(&xml, caps->host.nnumaCell,
> + caps->host.numaCell);
>
> for (i = 0; i < caps->host.nsecModels; i++) {
> virBufferAddLit(&xml, " <secmodel>\n");
>
ACK,
Martin
--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list