On Fri, May 11, 2012 at 04:40:08PM +0800, Osier Yang wrote: > On 2012年05月11日 16:35, Daniel P. Berrange wrote: > >On Fri, May 11, 2012 at 04:21:48PM +0800, Osier Yang wrote: > >>Hi, > >> > >>We have problem of host CPU topology parsing on special > >>platforms (general platforms are fine). E.g. > >> > >>On a AMD machine with 48 CPUs [1] (4 sockets, 6 cores indeed > >>[2]), VIR_NODEINFO_MAXCPUS [3] will always return 24 as the > >>total CPU number. > > > >If it is returning 24, then surely we have the 'nodes' value > >wrong in the virNodeInfo ? It sounds like it should have been > >set to 2 (4 * 6 * 2 => 48) > > /* nodeinfo->sockets is supposed to be a number of sockets per > NUMA node, > * however if NUMA nodes are not composed of whole sockets, we just lie > * about the number of NUMA nodes and force apps to check > capabilities XML > * for the actual NUMA topology. > */ > if (nodeinfo->sockets % nodeinfo->nodes == 0) > nodeinfo->sockets /= nodeinfo->nodes; > else > nodeinfo->nodes = 1; > > Jirka said this was for a fix, but I don't quite understand it, > what does the "nodeinfo.nodes" mean actually? Shouldn't it > be 8 (for the 48 CPUs machine) instead? But then we will be > wrong again with using VIR_NODEINFO_MAXCPUS. In the capabilities XML you post all the nodes have the same number of sockets, so that workaround should not have been coming into effect. I think there's a flaw in the code that populates 'nodeinfo' earlier than this. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list