This patch resolves c479640d6208236744f0562b1e79535eec290e2b where the CPU count returns max possible supported CPUs, and instead returns current active CPUs. diff --git a/os/os-windows-7.h b/os/os-windows-7.h index f5ddb8e..0a6eaa3 100644 --- a/os/os-windows-7.h +++ b/os/os-windows-7.h @@ -10,7 +10,7 @@ typedef struct { /* Return all processors regardless of processor group */ static inline unsigned int cpus_online(void) { - return GetMaximumProcessorCount(ALL_PROCESSOR_GROUPS); + return GetActiveProcessorCount(ALL_PROCESSOR_GROUPS); } static inline void print_mask(os_cpu_mask_t *cpumask) @@ -104,7 +104,7 @@ static inline int mask_to_group_mask(os_cpu_mask_t *cpumask, int *processor_grou cpus_offset = 0; group_size = 0; while (!found && group < online_groups) { - group_size = GetMaximumProcessorCount(group); + group_size = GetActiveProcessorCount(group); dprint(FD_PROCESS, "group=%d group_start=%d group_size=%u search_cpu=%d\n", group, cpus_offset, group_size, search_cpu); if (cpus_offset + group_size > search_cpu) @@ -271,7 +271,7 @@ static inline int fio_getaffinity(int pid, os_cpu_mask_t *mask) dprint(FD_PROCESS, "current_groups=%d group_count=%d\n", current_groups[0], group_count); while (true) { - group_size = GetMaximumProcessorCount(group); + group_size = GetActiveProcessorCount(group); if (group_size == 0) { log_err("fio_getaffinity: error retrieving size of " "processor group %d\n", group);