[libvirt] [PATCH 1/2] qemu: process: split out shmem startup warning

Cole Robinson crobinso at redhat.com
Wed Apr 20 21:01:22 UTC 2016


Now we can return early and save some indentation
---
 src/qemu/qemu_process.c | 95 ++++++++++++++++++++++++++-----------------------
 1 file changed, 51 insertions(+), 44 deletions(-)

diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index c087300..10e1b5a 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4497,6 +4497,56 @@ qemuProcessMakeDir(virQEMUDriverPtr driver,
 }
 
 
+static void
+qemuProcessStartWarnShmem(virDomainObjPtr vm)
+{
+    size_t i;
+    bool check_shmem = false;
+    bool shmem = vm->def->nshmems;
+
+    /*
+     * For vhost-user to work, the domain has to have some type of
+     * shared memory configured.  We're not the proper ones to judge
+     * whether shared hugepages or shm are enough and will be in the
+     * future, so we'll just warn in case neither is configured.
+     * Moreover failing would give the false illusion that libvirt is
+     * really checking that everything works before running the domain
+     * and not only we are unable to do that, but it's also not our
+     * aim to do so.
+     */
+    for (i = 0; i < vm->def->nnets; i++) {
+        if (virDomainNetGetActualType(vm->def->nets[i]) ==
+                                      VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
+            check_shmem = true;
+            break;
+        }
+    }
+
+    if (!check_shmem)
+        return;
+
+    /*
+     * This check is by no means complete.  We merely check
+     * whether there are *some* hugepages enabled and *some* NUMA
+     * nodes with shared memory access.
+     */
+    if (!shmem && vm->def->mem.nhugepages) {
+        for (i = 0; i < virDomainNumaGetNodeCount(vm->def->numa); i++) {
+            if (virDomainNumaGetNodeMemoryAccessMode(vm->def->numa, i) ==
+                VIR_NUMA_MEM_ACCESS_SHARED) {
+                shmem = true;
+                break;
+            }
+        }
+    }
+
+    if (!shmem) {
+        VIR_WARN("Detected vhost-user interface without any shared memory, "
+                 "the interface might not be operational");
+    }
+}
+
+
 /**
  * qemuProcessStartValidate:
  * @vm: domain object
@@ -4517,9 +4567,6 @@ qemuProcessStartValidate(virQEMUDriverPtr driver,
                          bool snapshot,
                          unsigned int flags)
 {
-    bool check_shmem = false;
-    size_t i;
-
     if (!(flags & VIR_QEMU_PROCESS_START_PRETEND)) {
         if (vm->def->virtType == VIR_DOMAIN_VIRT_KVM) {
             VIR_DEBUG("Checking for KVM availability");
@@ -4559,47 +4606,7 @@ qemuProcessStartValidate(virQEMUDriverPtr driver,
 
     VIR_DEBUG("Checking for any possible (non-fatal) issues");
 
-    /*
-     * For vhost-user to work, the domain has to have some type of
-     * shared memory configured.  We're not the proper ones to judge
-     * whether shared hugepages or shm are enough and will be in the
-     * future, so we'll just warn in case neither is configured.
-     * Moreover failing would give the false illusion that libvirt is
-     * really checking that everything works before running the domain
-     * and not only we are unable to do that, but it's also not our
-     * aim to do so.
-     */
-    for (i = 0; i < vm->def->nnets; i++) {
-        if (virDomainNetGetActualType(vm->def->nets[i]) ==
-                                      VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
-            check_shmem = true;
-            break;
-        }
-    }
-
-    if (check_shmem) {
-        bool shmem = vm->def->nshmems;
-
-        /*
-         * This check is by no means complete.  We merely check
-         * whether there are *some* hugepages enabled and *some* NUMA
-         * nodes with shared memory access.
-         */
-        if (!shmem && vm->def->mem.nhugepages) {
-            for (i = 0; i < virDomainNumaGetNodeCount(vm->def->numa); i++) {
-                if (virDomainNumaGetNodeMemoryAccessMode(vm->def->numa, i) ==
-                    VIR_NUMA_MEM_ACCESS_SHARED) {
-                    shmem = true;
-                    break;
-                }
-            }
-        }
-
-        if (!shmem) {
-            VIR_WARN("Detected vhost-user interface without any shared memory, "
-                     "the interface might not be operational");
-        }
-    }
+    qemuProcessStartWarnShmem(vm);
 
     return 0;
 }
-- 
2.7.3




More information about the libvir-list mailing list