On 4/24/20 9:58 AM, Peter Krempa wrote:
On Wed, Apr 22, 2020 at 17:50:44 -0400, Tobin Feldman-Fitzthum
wrote:
> Add virQEMUCapsProbeQMPTCGState to set TCG_DISABLED cap if version
> is > 2.10, KVM is enabled, and tcg-accel is not present in
> qom-list-types result.
>
> Signed-off-by: Tobin Feldman-Fitzthum <tobin(a)linux.vnet.ibm.com>
> ---
> src/qemu/qemu_capabilities.c | 34 ++++++++++++++++++++++++++++++++--
> 1 file changed, 32 insertions(+), 2 deletions(-)
I don't feel comfortable reviewing the other two patches which deal with
the actual use of the capability, so I'll leave those for somebody else.
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index e7179ea048..4a3170fc5c 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -2576,7 +2576,35 @@ virQEMUCapsProbeQMPGenericProps(virQEMUCapsPtr qemuCaps,
> }
>
> static int
> -virQEMUCapsProbeQMPDevices(virQEMUCapsPtr qemuCaps,
> +virQEMUCapsProbeQMPTCGState(virQEMUCapsPtr qemuCaps,
Returned value of the new function is not used, so please define it as
'void'
> + char **values,
> + int nvalues)
> +{
> + size_t i;
> + bool found = false;
> + /*
> + * As of version 2.10, QEMU can be built without the TCG.
> + * */
> + if (qemuCaps->version < 2010000)
> + return 0;
> + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM))
> + return 0;
> +
> + for (i = 0; i < nvalues; i++) {
> + if (STREQ(values[i], "tcg-accel")) {
> + found = true;
You can set the capability here without intermediate variable and just
return.
I'm not quite sure what you mean. The capability tracks lack of
tcg-accel. So what can be done here is return and drop the check before
setting the capability below.
> + break;
> + }
> + }
> +
> + if (!found)
> + virQEMUCapsSet(qemuCaps, QEMU_CAPS_TCG_DISABLED);
> +
> + return 0;
> +}
> +
> +static int
> +virQEMUCapsProbeQMPTypes(virQEMUCapsPtr qemuCaps,
> qemuMonitorPtr mon)
> {
> int nvalues;
With the above resolved:
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>
Michal