On Thu, Aug 13, 2009 at 11:58:16AM +0100, Daniel P. Berrange wrote: > commit e2052c24f39c71b3b8e92a983287f72176d73c77 > Author: Daniel P. Berrange <berrange@xxxxxxxxxx> > Date: Thu Aug 13 11:56:31 2009 +0100 > > Make LXC / UML drivers robust against NUMA topology brokenness > > Some kernel versions expose broken NUMA topology for some machines. > This causes the LXC/UML drivers to fail to start. QEMU driver was > already fixed for this problem > > * src/lxc_conf.c: Log and ignore failure to populate NUMA info > * src/uml_conf.c: Log and ignore failure to populate NUMA info > > + /* Some machines have problematic NUMA toplogy causing > + * unexpected failures. We don't want to break the QEMU > + * driver in this scenario, so log errors & carry on > + */ > + if (nodeCapsInitNUMA(caps) < 0) { > + virCapabilitiesFreeNUMAInfo(caps); Hum, right now this doesn't reset caps.nnumaCell > + VIR_WARN0("Failed to query host NUMA topology, disabling NUMA capabilities"); > + } > > /* XXX shouldn't 'borrow' KVM's prefix */ > virCapabilitiesSetMacPrefix(caps, (unsigned char []){ 0x52, 0x54, 0x00 }); > diff --git a/src/uml_conf.c b/src/uml_conf.c > index 48e05a8..4f756d4 100644 > --- a/src/uml_conf.c > +++ b/src/uml_conf.c > @@ -45,6 +45,7 @@ > #include "nodeinfo.h" > #include "verify.h" > #include "bridge.h" > +#include "logging.h" > > #define VIR_FROM_THIS VIR_FROM_UML > > @@ -63,8 +64,14 @@ virCapsPtr umlCapsInit(void) { > 0, 0)) == NULL) > goto no_memory; > > - if (nodeCapsInitNUMA(caps) < 0) > - goto no_memory; > + /* Some machines have problematic NUMA toplogy causing > + * unexpected failures. We don't want to break the QEMU > + * driver in this scenario, so log errors & carry on > + */ > + if (nodeCapsInitNUMA(caps) < 0) { > + virCapabilitiesFreeNUMAInfo(caps); > + VIR_WARN0("Failed to query host NUMA topology, disabling NUMA capabilities"); > + } > > if ((guest = virCapabilitiesAddGuest(caps, > "uml", Patch looks fine but IMHO we should add caps->host.nnumaCell = 0; in virCapabilitiesFreeNUMAInfo() to be 100% sure once done, ACK Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list