]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Sort the numa params only when it affects the live config
authorOsier Yang <jyang@redhat.com>
Wed, 29 Aug 2012 06:46:06 +0000 (14:46 +0800)
committerOsier Yang <jyang@redhat.com>
Thu, 30 Aug 2012 04:29:56 +0000 (12:29 +0800)
As the next boot doesn't have to worry about the previous numa
params setting (there is no).

src/qemu/qemu_driver.c

index 374349a10907d56c22802bccc67f28cfe15e097c..5d9f8c993270d125956be3b2141e2c9ec10e8ec8 100644 (file)
@@ -7179,32 +7179,34 @@ qemuDomainSetMemoryParameters(virDomainPtr dom,
         goto cleanup;
     }
 
-    /* Get current swap hard limit */
-    rc = virCgroupGetMemSwapHardLimit(group, &val);
-    if (rc != 0) {
-        virReportSystemError(-rc, "%s",
-                             _("unable to get swap hard limit"));
-        goto cleanup;
-    }
+    if (flags & VIR_DOMAIN_AFFECT_LIVE) {
+        /* Get current swap hard limit */
+        rc = virCgroupGetMemSwapHardLimit(group, &val);
+        if (rc != 0) {
+            virReportSystemError(-rc, "%s",
+                                 _("unable to get swap hard limit"));
+            goto cleanup;
+        }
 
-    /* Swap hard_limit and swap_hard_limit to ensure the setting
-     * could succeed if both of them are provided.
-     */
-    if (swap_hard_limit && hard_limit) {
-        virTypedParameter param;
-
-        if (swap_hard_limit->value.ul > val) {
-             if (hard_limit_index < swap_hard_limit_index) {
-                 param = params[hard_limit_index];
-                 params[hard_limit_index] = params[swap_hard_limit_index];
-                 params[swap_hard_limit_index] = param;
-             }
-        } else {
-             if (hard_limit_index > swap_hard_limit_index) {
-                 param = params[hard_limit_index];
-                 params[hard_limit_index] = params[swap_hard_limit_index];
-                 params[swap_hard_limit_index] = param;
-             }
+        /* Swap hard_limit and swap_hard_limit to ensure the setting
+         * could succeed if both of them are provided.
+         */
+        if (swap_hard_limit && hard_limit) {
+            virTypedParameter param;
+
+            if (swap_hard_limit->value.ul > val) {
+                if (hard_limit_index < swap_hard_limit_index) {
+                    param = params[hard_limit_index];
+                    params[hard_limit_index] = params[swap_hard_limit_index];
+                    params[swap_hard_limit_index] = param;
+                }
+            } else {
+                if (hard_limit_index > swap_hard_limit_index) {
+                    param = params[hard_limit_index];
+                    params[hard_limit_index] = params[swap_hard_limit_index];
+                    params[swap_hard_limit_index] = param;
+                }
+            }
         }
     }