]> xenbits.xensource.com Git - libvirt.git/commitdiff
Make tunnelled migration honour resource restriction
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 20 Apr 2011 16:56:35 +0000 (17:56 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Mon, 16 May 2011 14:18:22 +0000 (15:18 +0100)
The doTunnelMigrate method forgot to set the bandwidth
resource restriction

* src/qemu/qemu_migration.c: Set resource restriction

src/qemu/qemu_migration.c

index 4a88e7dc4aed374ac855ec0229e35e728762d716..12486f5145103a286219780c0baff4bf61de0719 100644 (file)
@@ -1299,7 +1299,6 @@ static int doTunnelSendAll(virStreamPtr st,
         return -1;
     }
 
-    /* XXX should honour the 'resource' parameter here */
     for (;;) {
         nbytes = saferead(sock, buffer, nbytes);
         if (nbytes < 0) {
@@ -1339,7 +1338,7 @@ static int doTunnelMigrate(struct qemud_driver *driver,
                            char **cookieout,
                            int *cookieoutlen,
                            unsigned long flags,
-                           unsigned long resource ATTRIBUTE_UNUSED)
+                           unsigned long resource)
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
     int client_sock = -1;
@@ -1421,6 +1420,11 @@ static int doTunnelMigrate(struct qemud_driver *driver,
 
     /*   3. start migration on source */
     qemuDomainObjEnterMonitorWithDriver(driver, vm);
+    if (resource > 0 &&
+        qemuMonitorSetMigrationSpeed(priv->mon, resource) < 0) {
+        qemuDomainObjExitMonitorWithDriver(driver, vm);
+        goto cleanup;
+    }
 
     if (flags & VIR_MIGRATE_NON_SHARED_DISK)
         background_flags |= QEMU_MONITOR_MIGRATE_NON_SHARED_DISK;