On 11/07/2012 04:22 PM, Peter Krempa wrote:
+ /* Now check if the topology makes sense. There are machines
that don't
+ * expose their real number of nodes or for example the AMD Bulldozer
+ * architecture that exposes their Clustered integer core modules as both
+ * threads and cores. This approach throws off our detection. Unfortunately
+ * the nodeinfo structure isn't designed to carry the full topology so
+ * we're going to lie about the detected topology to notify the user
+ * to check the host capabilities for the actual topology. */
+ if ((nodeinfo->nodes *
+ nodeinfo->sockets *
+ nodeinfo->cores *
+ nodeinfo->threads) != (nodeinfo->cpus + offline)) {
+ nodeinfo->nodes = 1;
+ nodeinfo->sockets = nodeinfo->cpus;
To really fix the wrong topology
this should be
+ nodeinfo->sockets = nodeinfo->cpus + offline;
+ nodeinfo->cores = 1;
A matter of taste but I would
have chosen cores to contain the number of
CPUs, but fake is fake ... so that's OK :-).
+ nodeinfo->threads = 1;
+ }
+
ret = 0;
cleanup:
--
Mit freundlichen Grüßen/Kind Regards
Viktor Mihajlovski
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294