Hi again,
Well, looks like a bug in the C library. Using the syscall directly
produces the expected behavior, using the C library produces an error.
Compile the following with -DBUG to see the buggy behavior. Comments?
Phil
#include
Hi folks,
I'm working with some guys at PGI/AMD to get some sched_setaffinity support in some runtime systems. We're having great difficulty getting sched_setaffinity working.
The code below was constructed via the code in linux/kernel/sched.c, contrary to the prototypes and the like. Surely we must be doing something rather stupid, because we keep getting -EFAULT.
The only thing I can guess is that the sizeof(cpumask) is different in kernel than it is in user land.
Any help would be greatly appreciated...
Phil
#include
#include #include #include #include void set_affin(void) { cpumask_t mask = { 0, }; int retval;
cpu_set(1,mask); retval = sched_setaffinity(0,sizeof(cpumask_t),&mask); printf("sched_setaffinity returns %d, errno %d\n",retval,errno); perror("ERROR MESSAGE"); } int main(int argc, char **argv) { set_affin(); sleep(1); exit(0); }