On Thu, 8 Dec 2005, Jeff Squyres wrote:

Check out http://svn.open-mpi.org/svn/ompi/trunk/opal/mca/paffinity/ linux/paffinity_linux.h -- there's a big comment in that file about the problem, to include descriptions of the 3 APIs.

I'm sorry, but that is not quite what I wrote about in my message. The comments refer to the _glibc_ view of the functions, at least I couldn't see how they map to my reading of the _kernel_ source code. Let's take one that is specifically mentioned there: Mandrake 10.0, kernel based on 2.6.3, in file kernel/sched.c there is the function:

/**
 * sys_sched_setaffinity - set the cpu affinity of a process
 * @pid: pid of the process
 * @len: length in bytes of the bitmask pointed to by user_mask_ptr
 * @user_mask_ptr: user-space pointer to the new cpu mask
 */
asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len,
                                      unsigned long __user *user_mask_ptr)

which again has 3 arguments that look exactly like the ones that I mentioned previously. I don't have access to the source code of the SGI Altix kernel, so I can't check the other one mentioned there as a 2-args function. But so far all _kernel_ prototypes of the function that I have looked at are exactly the same with 3 arguments.

The solution that I proposed works much like a statically linked binary - it calls via a syscall the _kernel_ function that has a constant (so far) prototype. It doesn't call the _glibc_ function that changes prototype.

--
Bogdan Costescu

IWR - Interdisziplinaeres Zentrum fuer Wissenschaftliches Rechnen
Universitaet Heidelberg, INF 368, D-69120 Heidelberg, GERMANY
Telephone: +49 6221 54 8869, Telefax: +49 6221 54 8868
E-mail: bogdan.coste...@iwr.uni-heidelberg.de

Reply via email to