> I think it is necessary to make a small change to the cpuset API. The
> current API was made fit to allow dynamically sized cpusets. I.e. an
> alloc/modify/free style life cycle. The problem I see is, from where
> should hwloc_cpuset_alloc() get the size of the cpuset? The solution I
> see is to pass the hwloc_topology_t into hwloc_cpuset_alloc(), so that
> the information comes from there .
> I haven't looked through the whole tree, if a hwloc_topology_t is
> always available at places where hwloc_cpuset_alloc() is called.
There's no need to hardwire any cpuset size at all, even if it comes from
the OS instead of from hwloc/config.h. Some students are working on
allocating a single unsigned long first and then dynamically reallocate
more whenever you try to set a bit with a very large index (and possibly
use some sparse allocation model too). I expect the code to be ready for
1.1. Until then, statically allocating 1024 should be enough is the vast
majority of cases.