diff --git a/programs/util.c b/programs/util.c index 3fd4cd17..9b040504 100644 --- a/programs/util.c +++ b/programs/util.c @@ -1212,12 +1212,17 @@ int UTIL_countPhysicalCores(void) /* fall back on the sysconf value */ goto failed; } } - if (siblings && cpu_cores) { + if (siblings && cpu_cores && siblings > cpu_cores) { ratio = siblings / cpu_cores; } + + if (ratio && numPhysicalCores > ratio) { + numPhysicalCores = numPhysicalCores / ratio; + } + failed: fclose(cpuinfo); - return numPhysicalCores = numPhysicalCores / ratio; + return numPhysicalCores; } }