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.
Signed-off-by: Adam Litke <agl(a)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 */
--
Thanks,
Adam