From ecd937164f0b8d50e05b94b915a1c88a39b65603 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Fri, 26 Jun 2009 20:08:07 +0000 Subject: [PATCH] * src/nodeinfo.c: sometimes libnuma can't handle some topologies, but those failures should not completely break libvirt, patch by Dan Berrange, fixes #506590 daniel --- ChangeLog | 6 ++++++ src/nodeinfo.c | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0298404730..6c39f349cf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Jun 26 22:02:22 CEST 2009 Daniel Veillard + + * src/nodeinfo.c: sometimes libnuma can't handle some topologies, + but those failures should not completely break libvirt, patch + by Dan Berrange, fixes #506590 + Fri Jun 26 20:11:38 CEST 2009 Daniel Veillard * src/xend_internal.c: avoid a segfault when dumping XML with recent diff --git a/src/nodeinfo.c b/src/nodeinfo.c index e4863bbbf1..3d918d191d 100644 --- a/src/nodeinfo.c +++ b/src/nodeinfo.c @@ -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))