The previous mail was about the constants; now I have questions about the 
functions.  :-)

hwloc_alloc_membind
hwloc_alloc_membind_nodeset

What does "binding cannot be enforced" mean (i.e., when EXDEV is returned)?  
Assumedly the system supports binding (otherwise ENOSYS would have been 
returned).  Does it mean, for example, that I asked for X memory on node Y, but 
node Y didn't have X memory available on node Y?

When EXDEV is returned, is valid memory returned (that must be freed via 
hwloc_free), or does the entire allocation fail?

hwloc_get_area_membind
hwloc_get_area_membind_nodeset

Is the purpose of these 2 functions to query the memory binding policy for an 
(addr, len) tuple in the current process?

If so, what happens if there are multiple memory binding policies in effect for 
that tuple?

What is the purpose of the IN flags argument?  Taking a guess: can you pass 
_PROCESS or _THREAD in to query the binding policy for this specific thread or 
the entire process?  (and all other flags are ignored or illegal?)

hwloc_get_membind
hwloc_get_membind_nodeset

Is the purpose of these 2 functions to query the memory binding polocy for the 
entire current process (or a thread in the current process)?

(assuming the other questions/answers from _get_area_membind are also relevant 
here)

hwloc_get_proc_membind
hwloc_get_proc_membind_nodeset

It took me a while to notice the PID argument in this function, and that this 
was the main difference from hwloc_get_membind*.  I assume that the 
documentation statement "Get current process memory binding in cpuset cpuset." 
is actually incorrect -- right?  It shouldn't say "current" -- it should 
indicate that you can query the memory binding policy for the process specified 
by the pid argument, right?  If so, is it equivalent to calling 
hwloc_get_membind* in that process?

Assumedly, you need some kind of rights on the target process -- either you're 
the owner of the process, or are superuser, ...or have some other 
administrative rights on the target.  Right?

Several of the above questions (more-or-less) apply to hwloc_set_*mem*, so I'll 
refrain form listing them explicitly here.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to