[libvirt] [PATCH 17/41] cpu: Special case models == NULL in cpuGetModels

John Ferlan jferlan at redhat.com
Mon Aug 29 21:59:21 UTC 2016



On 08/12/2016 09:33 AM, Jiri Denemark wrote:
> Some CPU drivers (such as arm) do not provide list of CPUs libvirt
> supports and just pass any CPU model from domain XML directly to QEMU.
> Such driver need to return models == NULL and success from cpuGetModels.
> 
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
>  src/cpu/cpu.c      | 15 +++++++++------
>  src/libvirt-host.c |  3 ++-
>  tools/virsh-host.c | 10 +++++++---
>  3 files changed, 18 insertions(+), 10 deletions(-)
> 

[...]

> diff --git a/src/libvirt-host.c b/src/libvirt-host.c
> index 2a3de03..335798a 100644
> --- a/src/libvirt-host.c
> +++ b/src/libvirt-host.c
> @@ -1005,7 +1005,8 @@ virConnectCompareCPU(virConnectPtr conn,
>   *
>   * Get the list of supported CPU models for a specific architecture.
>   *
> - * Returns -1 on error, number of elements in @models on success.
> + * Returns -1 on error, number of elements in @models on success (0 means
> + * libvirt accepts any CPU model).
>   */
>  int
>  virConnectGetCPUModelNames(virConnectPtr conn, const char *arch, char ***models,
> diff --git a/tools/virsh-host.c b/tools/virsh-host.c
> index 57f0c0e..7ac2812 100644
> --- a/tools/virsh-host.c
> +++ b/tools/virsh-host.c
> @@ -1127,9 +1127,13 @@ cmdCPUModelNames(vshControl *ctl, const vshCmd *cmd)
>          return false;
>      }
>  
> -    for (i = 0; i < nmodels; i++) {
> -        vshPrint(ctl, "%s\n", models[i]);
> -        VIR_FREE(models[i]);
> +    if (nmodels == 0) {
> +        vshPrint(ctl, "%s\n", _("all CPU models are accepted"));
> +    } else {
> +        for (i = 0; i < nmodels; i++) {
> +            vshPrint(ctl, "%s\n", models[i]);
> +            VIR_FREE(models[i]);
> +        }

I seem to recall some recent work around the -q[uiet] switch - is that
something that this code needs to be concerned with?  (as silly as that
seems while I'm typing it!)


>      }
>      VIR_FREE(models);
>  
> 




More information about the libvir-list mailing list