Index: src/topology-solaris.c =================================================================== --- src/topology-solaris.c (revision 5292) +++ src/topology-solaris.c (working copy) @@ -143,6 +143,7 @@ int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE); int n; int i; + processorid_t binding; if (depth < 0) { errno = ENOSYS; @@ -152,6 +153,15 @@ hwloc_bitmap_zero(hwloc_set); n = hwloc_get_nbobjs_by_depth(topology, depth); + /* first check if processor_bind() was used to bind to a single processor rather than to an lgroup */ + + if ( processor_bind(idtype, id, PBIND_QUERY, &binding) == 0 && binding != PBIND_NONE ) { + hwloc_bitmap_only(hwloc_set, binding); + return 0; + } + + /* if not, check lgroups */ + for (i = 0; i < n; i++) { hwloc_obj_t obj = hwloc_get_obj_by_depth(topology, depth, i); lgrp_affinity_t aff = lgrp_affinity_get(idtype, id, obj->os_index);