[libvirt] [PATCH] qemu: Sort the numa params only when it requires to affect the live config

Osier Yang jyang at redhat.com
Wed Aug 29 16:37:58 UTC 2012


As the next boot doesn't have to worry about the previous numa
params setting (there is no).
---
 src/qemu/qemu_driver.c |   52 ++++++++++++++++++++++++-----------------------
 1 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 955744a..bc7de9f 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7204,32 +7204,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;
+                }
+            }
         }
     }
 
-- 
1.7.7.3




More information about the libvir-list mailing list