For virQEMUCapsInitQMPMonitor I didn't find other way to check the
capability than to check the version, and virQEMUCapsComputeCmdFlags
is not call when qemu use QMP(or I've miss how to call it).
I don't understand how i should change this patch, can you explain it
to me please ?
On Fri, Sep 19, 2014 at 1:11 PM, Michal Privoznik <mprivozn(a)redhat.com> wrote:
On 15.09.2014 19:27, Matthias Gatto wrote:
>
> Add a value in the enum virQEMUCapsFlags for the qemu capability.
> Set it with virQEMUCapsSet if the binary suport bps_max and they friends.
>
> Signed-off-by: Matthias Gatto <matthias.gatto(a)outscale.com>
> ---
> src/qemu/qemu_capabilities.c | 6 ++++++
> src/qemu/qemu_capabilities.h | 1 +
> 2 files changed, 7 insertions(+)
>
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 360cc67..a97ca03 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -265,6 +265,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
> "numa",
> "memory-backend-file",
> "usb-audio",
> + "drive-iotune-max",
> );
>
>
> @@ -1063,6 +1064,8 @@ virQEMUCapsComputeCmdFlags(const char *help,
> virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_COPY_ON_READ);
> if (strstr(help, "bps="))
> virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE);
> + if (strstr(help, "bps_max="))
> + virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX);
> }
> if ((p = strstr(help, "-vga")) && !strstr(help,
"-std-vga")) {
> const char *nl = strstr(p, "\n");
> @@ -3141,6 +3144,9 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
> if (qemuCaps->version >= 1006000)
> virQEMUCapsSet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
>
> + if (qemuCaps->version >= 1007000)
> + virQEMUCapsSet(qemuCaps, QEMU_CAPS_DRIVE_IOTUNE_MAX);
> +
What's wrong with just the above chunk? I mean, version based checks are not
good. I'd just drop this one.
> if (virQEMUCapsProbeQMPCommands(qemuCaps, mon) < 0)
> goto cleanup;
> if (virQEMUCapsProbeQMPEvents(qemuCaps, mon) < 0)
> diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
> index 2911759..394a836 100644
> --- a/src/qemu/qemu_capabilities.h
> +++ b/src/qemu/qemu_capabilities.h
> @@ -213,6 +213,7 @@ typedef enum {
> QEMU_CAPS_NUMA = 171, /* newer -numa handling with
> disjoint cpu ranges */
> QEMU_CAPS_OBJECT_MEMORY_FILE = 172, /* -object memory-backend-file
> */
> QEMU_CAPS_OBJECT_USB_AUDIO = 173, /* usb-audio device support */
> + QEMU_CAPS_DRIVE_IOTUNE_MAX = 174, /* -drive bps_max= and friends */
>
> QEMU_CAPS_LAST, /* this must always be the last
> item */
> } virQEMUCapsFlags;
>
Michal