[libvirt] [PATCH 5/6] qemu: Format nested-hv feature on the command line

Michal Privoznik mprivozn at redhat.com
Mon Nov 26 15:21:09 UTC 2018


On 11/20/18 6:08 PM, Andrea Bolognani wrote:
> Signed-off-by: Andrea Bolognani <abologna at redhat.com>
> ---
>  src/qemu/qemu_command.c                      | 20 ++++++++++++++++++++
>  tests/qemuxml2argvdata/pseries-features.args |  2 +-
>  2 files changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 23a6661c10..315419c71b 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -7468,6 +7468,26 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
>          virBufferAsprintf(&buf, ",cap-htm=%s", str);
>      }
>  
> +    if (def->features[VIR_DOMAIN_FEATURE_NESTED_HV] != VIR_TRISTATE_SWITCH_ABSENT) {
> +        const char *str;
> +
> +        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_CAP_NESTED_HV)) {
> +            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                           _("Nested HV configuration is not supported by "
> +                             "this QEMU binary"));
> +            goto cleanup;
> +        }
> +
> +        str = virTristateSwitchTypeToString(def->features[VIR_DOMAIN_FEATURE_NESTED_HV]);
> +        if (!str) {
> +            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                           _("Invalid setting for nested HV state"));
> +            goto cleanup;
> +        }

How can this be? The only possibility I see if
def->features[VIR_DOMAIN_FEATURE_NESTED_HV] wasn't 1 or 2. But then we
are in much bigger trouble anyway. I suggest removing it. We don't check
for the retval anywhere else.

> +
> +        virBufferAsprintf(&buf, ",cap-nested-hv=%s", str);
> +    }
> +
>      if (cpu && cpu->model &&
>          cpu->mode == VIR_CPU_MODE_HOST_MODEL &&
>          qemuDomainIsPSeries(def) &&
> diff --git a/tests/qemuxml2argvdata/pseries-features.args b/tests/qemuxml2argvdata/pseries-features.args
> index 5d4b5ce930..0acab91c2a 100644
> --- a/tests/qemuxml2argvdata/pseries-features.args
> +++ b/tests/qemuxml2argvdata/pseries-features.args
> @@ -8,7 +8,7 @@ QEMU_AUDIO_DRV=none \
>  -name guest \
>  -S \
>  -machine pseries,accel=tcg,usb=off,dump-guest-core=off,resize-hpt=required,\
> -cap-hpt-max-page-size=1048576k,cap-htm=on \
> +cap-hpt-max-page-size=1048576k,cap-htm=on,cap-nested-hv=off \
>  -m 512 \
>  -smp 1,sockets=1,cores=1,threads=1 \
>  -uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \
> 

Michal




More information about the libvir-list mailing list