[libvirt] [PATCH] qemu: Always enable the virtio balloon driver

Dor Laor dlaor at redhat.com
Tue Jan 5 07:43:32 UTC 2010


On 01/04/2010 07:13 PM, Adam Litke wrote:
> The behavior for the qemu balloon device has changed.  Formerly, a virtio
> balloon device was provided by default.  Now, '-balloon virtio' must be
> specified on the command line to enable it.  This patch causes libvirt to add
> '-balloon virtio' to the command line whenever the -balloon option is
> available.


Why add it automatically? I rather have the user state explicitly that a 
balloon is required. If the balloon is not used, we're just wasting a 
pci slot and enlarge the hypervisor signature.

I'm in favor of using the balloon driver, but there are occasions it 
won't be required or we won't have a guest driver for it.


>
> Signed-off-by: Adam Litke<agl at us.ibm.com>
>
> diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
> index 36bf9a2..07b0bd1 100644
> --- a/src/qemu/qemu_conf.c
> +++ b/src/qemu/qemu_conf.c
> @@ -1113,6 +1113,8 @@ static unsigned int qemudComputeCmdFlags(const char *help,
>           flags |= QEMUD_CMD_FLAG_MEM_PATH;
>       if (strstr(help, "-chardev"))
>           flags |= QEMUD_CMD_FLAG_CHARDEV;
> +    if (strstr(help, "-balloon"))
> +        flags |= QEMUD_CMD_FLAG_BALLOON;
>
>       if (version>= 9000)
>           flags |= QEMUD_CMD_FLAG_VNC_COLON;
> @@ -2883,6 +2885,14 @@ int qemudBuildCommandLine(virConnectPtr conn,
>           ADD_ARG_LIT(migrateFrom);
>       }
>
> +    /* QEMU changed its default behavior to not include the virtio balloon
> +     * device.  Explicitly request it to ensure it will be present.
> +     */
> +    if (qemuCmdFlags&  QEMUD_CMD_FLAG_BALLOON) {
> +        ADD_ARG_LIT("-balloon");
> +        ADD_ARG_LIT("virtio");
> +    }
> +
>       ADD_ARG(NULL);
>       ADD_ENV(NULL);
>
> diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
> index e958850..28f59bf 100644
> --- a/src/qemu/qemu_conf.h
> +++ b/src/qemu/qemu_conf.h
> @@ -78,6 +78,7 @@ enum qemud_cmd_flags {
>       QEMUD_CMD_FLAG_ENABLE_KVM    = (1<<  23), /* Is the -enable-kvm flag available to "enable KVM full virtualization support" */
>       QEMUD_CMD_FLAG_0_12          = (1<<  24),
>       QEMUD_CMD_FLAG_MONITOR_JSON  = QEMUD_CMD_FLAG_0_12, /* JSON mode for monitor */
> +    QEMUD_CMD_FLAG_BALLOON       = (1<<  25), /* -balloon available */
>   };
>
>   /* Main driver state */
>
>




More information about the libvir-list mailing list