[libvirt] [PATCH] don't break on libnuma failures

Daniel Veillard veillard at redhat.com
Fri Jun 26 20:08:10 UTC 2009


  Another patch hanging in bugzilla:
   https://bugzilla.redhat.com/show_bug.cgi?id=506590

sometimes libnuma can't handle some topologies,
but those failures should not completely break libvirt, patch
by Dan Berrange. Look sane to me, fixes the main problem for
the reporter, so I applied and commited it,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/
-------------- next part --------------
Index: src/nodeinfo.c
===================================================================
RCS file: /data/cvs/libvirt/src/nodeinfo.c,v
retrieving revision 1.20
diff -u -p -r1.20 nodeinfo.c
--- src/nodeinfo.c	15 Jun 2009 17:15:55 -0000	1.20
+++ src/nodeinfo.c	18 Jun 2009 11:58:37 -0000
@@ -43,6 +43,7 @@
 #include "nodeinfo.h"
 #include "physmem.h"
 #include "util.h"
+#include "logging.h"
 #include "virterror_internal.h"
 
 
@@ -206,8 +207,11 @@ nodeCapsInitNUMA(virCapsPtr caps)
     for (n = 0 ; n <= numa_max_node() ; n++) {
         int i;
         int ncpus;
-        if (numa_node_to_cpus(n, mask, mask_n_bytes) < 0)
-            goto cleanup;
+        if (numa_node_to_cpus(n, mask, mask_n_bytes) < 0) {
+            VIR_WARN("NUMA topology for cell %d of %d not available, ignoring",
+                     n, numa_max_node());
+            continue;
+        }
 
         for (ncpus = 0, i = 0 ; i < max_n_cpus ; i++)
             if (MASK_CPU_ISSET(mask, i))


More information about the libvir-list mailing list