Le 22/09/2010 13:36, Jeff Squyres a écrit : > On Sep 22, 2010, at 4:38 AM, Brice Goglin wrote: > > >> There are still some problems to solve in the membind branch: >> * Some OS bind the process too when you bind memory. I see the following >> solutions: >> + Add a flag such as HWLOC_MEMBIND_EVEN_IF_FAR_FROM_PROCESS so that >> the user can explicitly refuse memory binding if it may break process >> binding >> + Drop hwloc_set_membind on these OSes and add a >> hwloc_set_cpumembind() to bind both >> + Make both process and memory binding do nothing if the STRICT flag >> is given. But I'd rather not play too much with this flag. >> + Drop support for memory binding on these OS. >> + Drop these OS. >> > What OS's are you specifically referring to? >
IIRC, it was AIX and Solaris. > How about adding a query function that says what will happen for > hwloc_set_membind() I like it, we can put this in the output of hwloc_topology_get_support. I wonder if there are some other cases where the STRICT flag could be dropped in favor of such an informative stuff. > Just curious -- on these OS's, what happens if you: > > - bind proc to A > - bind memory to B (which then also re-binds proc to B) > - re-bind proc to A > > Is the memory binding then lost? > I'll let Samuel comment on this. >> * cpuset and nodeset structures are the same, they are both manipulated >> with hwloc_cpuset_foo functions. So maybe rename into hwloc_set_t and >> hwloc_set_foo functions. With #define and aliases to not break API/ABIs. >> > I'm in favor of this -- it would end the overloading of the term "cpuset" > between hwloc and cpuset. > hwloc_set_*? hwloc_objset* ? Anything better? hwloc_set_* might not be the best since we would have a hwloc_set_set() function to set one bit :) By the way, hwloc_cpuset_cpu() and hwloc_cpuset_all_but_cpu() should be renamed too. hwloc_set_onlyone() and hwloc_set_allbutone() maybe? Brice