3 * Copyright 2011 Daniel Borkmann <dborkma@tik.ee.ethz.ch>
6 * Faculty of Computer Science, Mathematics and Natural Sciences,
7 * Leipzig University of Applied Sciences (HTWK Leipzig)
11 #include <sys/types.h>
18 void run_on_cpu(int cpu
)
25 sched_setaffinity(0, sizeof(mask
), &mask
);
28 int set_proc_prio(int priority
)
31 * setpriority() is clever, even if you put a nice value which
32 * is out of range it corrects it to the closest valid nice value
34 int ret
= setpriority(PRIO_PROCESS
, getpid(), priority
);
36 panic("Can't set nice val to %i!\n", priority
);
41 int set_sched_status(int policy
, int priority
)
43 int ret
, min_prio
, max_prio
;
44 struct sched_param sp
;
46 max_prio
= sched_get_priority_max(policy
);
47 min_prio
= sched_get_priority_min(policy
);
49 if (max_prio
== -1 || min_prio
== -1)
50 whine("Cannot determine scheduler prio limits!\n");
51 else if (priority
< min_prio
)
53 else if (priority
> max_prio
)
56 memset(&sp
, 0, sizeof(sp
));
57 sp
.sched_priority
= priority
;
59 ret
= sched_setscheduler(getpid(), policy
, &sp
);
61 whine("Cannot set scheduler policy!\n");
65 ret
= sched_setparam(getpid(), &sp
);
67 whine("Cannot set scheduler prio!\n");