this code seems to be pretty old ..
You can try this code .. let me know if u find any issues with it....
/* bind - simple command-line tool to set CPU
* affinity of a given task
*/
#define _GNU_SOURCE
#include <stdlib.h>
#include <stdio.h>
#include <sched.h>
int main(int argc, char *argv[])
{
cpu_set_t new_mask;
cpu_set_t cur_mask;
unsigned int len = sizeof(new_mask);
pid_t pid;
if (argc != 3) {
fprintf(stderr,
"usage: %s [pid] [cpu_mask]\n",
argv[0]);
return -1;
}
pid = atol(argv[1]);
if (sched_getaffinity(pid, len,
&cur_mask) < 0) {
perror("sched_getaffinity");
return -1;
}
printf("pid %d's %08lx\n",
pid, cur_mask);
CPU_ZERO(&new_mask);
CPU_SET(atoi(argv[2]), &new_mask);
if (sched_setaffinity(pid, len, &new_mask)) {
perror("sched_setaffinity");
return -1;
}
if (sched_getaffinity(pid, len,
&cur_mask) < 0) {
perror("sched_getaffinity");
return -1;
}
printf(" pid %d's new affinity: %08lx\n",
pid, cur_mask);
return 0;
}
-Vinit
On Fri, Jul 31, 2009 at 1:42 AM, Vipul Jain <[email protected]> wrote:
> Hi All,
>
> I am trying to compile the cpu affinity tool written by Robert love
> present at the below link:
>
>
> http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/067/6799/6799l1.html
>
> But if I try to compile the program its giving me following error:
>
> vi...@ubuntu:~/linux$ cc -o bind bind.c
> bind.c: In function `main':
> bind.c:29: warning: passing arg 3 of `sched_getaffinity' from
> incompatible pointer type
> bind.c:37: warning: passing arg 3 of `sched_setaffinity' from
> incompatible pointer type
> bind.c:42: warning: passing arg 3 of `sched_getaffinity' from
> incompatible pointer type
>
> I am not sure why? (looking at his explanation and code things look
> perfect).
>
> http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/067/6799
>
> Also, Second thing he mentions sched_get/setaffinity takes three args
> but after doing the cscope
> in kernel source I found that its taking 2 args only.
> [cut from kernel/sched.c]
> long sched_getaffinity(pid_t pid, struct cpumask *mask)
>
> I was wondering if any body could please help me with this issue, would
> like to run this tool and
> set/check cpu affinity.
>
> Regards,
> Vipul.
>
>