]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Refresh memory size only on fresh starts
authorPeter Krempa <pkrempa@redhat.com>
Wed, 23 Sep 2015 12:19:06 +0000 (14:19 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 23 Sep 2015 12:22:29 +0000 (14:22 +0200)
Qemu unfortunately doesn't update internal state right after migration
and so the actual balloon size as returned by 'query-balloon' are
invalid for a while after the CPUs are started after migration. If we'd
refresh our internal state at this point we would report invalid current
memory size until the next balloon event would arrive.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1242940

src/qemu/qemu_process.c

index 7187dc16184828841473eb90570bf2f905e7e029..b961f400af1ce3a1b7ffa6e42dc543ee808d9b00 100644 (file)
@@ -5023,7 +5023,8 @@ int qemuProcessStart(virConnectPtr conn,
     /* Since CPUs were not started yet, the balloon could not return the memory
      * to the host and thus cur_balloon needs to be updated so that GetXMLdesc
      * and friends return the correct size in case they can't grab the job */
-    if (qemuProcessRefreshBalloonState(driver, vm, asyncJob) < 0)
+    if (!migrateFrom && !snapshot &&
+        qemuProcessRefreshBalloonState(driver, vm, asyncJob) < 0)
         goto cleanup;
 
     VIR_DEBUG("Detecting actual memory size for video device");