
On 2012年05月11日 16:40, 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.
The capabilities output: http://fpaste.org/0SG5/
[3] #define VIR_NODEINFO_MAXCPUS(nodeinfo) ((nodeinfo).nodes*(nodeinfo).sockets*(nodeinfo).cores*(nodeinfo).threads)
Rgeards, Daniel
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list