qemu: Always enable the virtio balloon driver

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.
* src/qemu/qemu_conf.c src/qemu/qemu_conf.h: check for the new flag and
  add "-baloon vitio" to qemu command when needed
* tests/qemuhelptest.c: add the new flag for detection
This commit is contained in:
Adam Litke 2010-01-06 18:01:51 +01:00 committed by Daniel Veillard
parent 1c06eb18c3
commit 7a90f21655
3 changed files with 13 additions and 1 deletions

View File

@ -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;
@ -2888,6 +2890,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);

View File

@ -77,6 +77,7 @@ enum qemud_cmd_flags {
QEMUD_CMD_FLAG_CHARDEV = (1 << 22), /* Is the new -chardev arg available */
QEMUD_CMD_FLAG_ENABLE_KVM = (1 << 23), /* Is the -enable-kvm flag available to "enable KVM full virtualization support" */
QEMUD_CMD_FLAG_MONITOR_JSON = (1 << 24), /* JSON mode for monitor */
QEMUD_CMD_FLAG_BALLOON = (1 << 25), /* -balloon available */
};
/* Main driver state */

View File

@ -179,7 +179,8 @@ mymain(int argc, char **argv)
QEMUD_CMD_FLAG_0_10 |
QEMUD_CMD_FLAG_PCIDEVICE |
QEMUD_CMD_FLAG_MEM_PATH |
QEMUD_CMD_FLAG_ENABLE_KVM,
QEMUD_CMD_FLAG_ENABLE_KVM |
QEMUD_CMD_FLAG_BALLOON,
10092, 1, 0);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;