]> xenbits.xensource.com Git - people/sstabellini/xen-unstable.git/.git/commitdiff
tools/xl: Remove the filelock when building VM if autoballooning is off
authorDmitry Isaykin <isaikin-dmitry@yandex.ru>
Thu, 9 Apr 2020 14:55:50 +0000 (15:55 +0100)
committerWei Liu <wl@xen.org>
Thu, 9 Apr 2020 14:55:50 +0000 (15:55 +0100)
The presence of this filelock does not allow building several VMs at the same
time. This filelock was added to prevent other xl instances from using memory
freed for the currently building VM in autoballoon mode.

Signed-off-by: Dmitry Isaykin <isaikin-dmitry@yandex.ru>
Reviewed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/xl/xl_vmcontrol.c

index 2e2d427492fea23863409c8f23561a2abb4ff057..17b4514c94301038c7178ce25a595304cb8de82e 100644 (file)
@@ -874,9 +874,11 @@ int create_domain(struct domain_create *dom_info)
 start:
     assert(domid == INVALID_DOMID);
 
-    rc = acquire_lock();
-    if (rc < 0)
-        goto error_out;
+    if (autoballoon) {
+        rc = acquire_lock();
+        if (rc < 0)
+            goto error_out;
+    }
 
     if (domid_soft_reset == INVALID_DOMID) {
         if (!freemem(domid, &d_config)) {
@@ -939,7 +941,8 @@ start:
     if ( ret )
         goto error_out;
 
-    release_lock();
+    if (autoballoon)
+        release_lock();
 
     if (restore_fd_to_close >= 0) {
         if (close(restore_fd_to_close))
@@ -1113,7 +1116,8 @@ start:
     }
 
 error_out:
-    release_lock();
+    if (autoballoon)
+        release_lock();
     if (libxl_domid_valid_guest(domid)) {
         libxl_domain_destroy(ctx, domid, 0);
         domid = INVALID_DOMID;