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
>> + 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
>> + 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?