Jeff Squyres, le Mon 09 Nov 2009 08:05:47 -0500, a écrit :
> Fair enough. What about if we have an AC check for
> pthread_setaffinity_np and use that if it exists, and if it doesn't
> use the PLPA way?
Err, remember that pthread_setaffinity_np alone doesn't permit to bind
another process, and suffers from the same size parameter kludge (it has
been introduced in 2003).
> BTW, how does pthread_setaffinity_np() work? Does it check the
> running kernel and ensure to do the Right Thing?
Like sched_setaffinity does, yes.
> That was definitely a problem in the past -- kernel and glibc would
> mismatch in terms of set/getaffinity (which was included in many
They have been fixed at the same time, 2004-03-18.
Maybe what we can do is using PLPA's functions if __GLIBC__ is <=
2 and __GLIBC_MINOR__ is < the first version which is known to be
correct or if CPU_SET can't be compiled, and rely on the glibc
functions else. Of course we have to rely on glibc in any case for