diff --git a/hwloc/topology-windows.c b/hwloc/topology-windows.c index 30272830ac..220a83d8f5 100644 --- a/hwloc/topology-windows.c +++ b/hwloc/topology-windows.c @@ -1090,9 +1090,19 @@ hwloc_look_windows(struct hwloc_backend *backend, struct hwloc_disc_status *dsta break; case RelationProcessorPackage: type = HWLOC_OBJ_PACKAGE; + num = procInfo->Processor.GroupCount; + GroupMask = procInfo->Processor.GroupMask; + break; + case RelationProcessorDie: + type = HWLOC_OBJ_DIE; num = procInfo->Processor.GroupCount; GroupMask = procInfo->Processor.GroupMask; - break; + break; + case RelationProcessorModule: + type = HWLOC_OBJ_GROUP; + num = procInfo->Processor.GroupCount; + GroupMask = procInfo->Processor.GroupMask; + break; case RelationCache: type = (procInfo->Cache.Type == CacheInstruction ? HWLOC_OBJ_L1ICACHE : HWLOC_OBJ_L1CACHE) + procInfo->Cache.Level - 1; /* GroupCount added approximately with NumaNode.GroupCount above */ @@ -1214,6 +1224,18 @@ hwloc_look_windows(struct hwloc_backend *backend, struct hwloc_disc_status *dsta continue; } break; + case HWLOC_OBJ_GROUP: + switch (procInfo[i].Relationship) { + case RelationGroup: + obj->attr->group.kind = HWLOC_GROUP_KIND_WINDOWS_PROCESSOR_GROUP; + break; + case RelationProcessorModule: + obj->attr->group.kind = HWLOC_GROUP_KIND_INTEL_MODULE; + break; + default: + obj->attr->group.kind = HWLOC_GROUP_KIND_WINDOWS_RELATIONSHIP_UNKNOWN; + } + break; default: break; }