On Thu, Aug 13, 2009 at 01:08:01PM +0200, Daniel Veillard wrote: > 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 Yes, I've pushed it with that addition. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list