> Hi, > > 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 [1]. > > I haven't looked through the whole tree, if a hwloc_topology_t is > always available at places where hwloc_cpuset_alloc() is called. > > Comments?
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. Brice