/** * krbtree_modulate_prio() * modulate/perturb the priority of the current thread * by some random amount. It might be useful to convert * some processes to RT priority as well. */ int krbtree_modulate_prio(void){ struct sched_param prio; unsigned int randval; if(modulate_priority){ randval = get_osa_random()%50; if(randval > 40){ /* turn the thread into a real time process */ prio.sched_priority = SCHED_RR; sys_sched_setscheduler(0,(randval*11)%99,&prio); return 0; } /* just change the process priority, leaving * it with it's current scheduler. */ randval -= 20; sys_setpriority(PRIO_PROCESS,0,randval); return 0; } // Don't modulate priority /* turn the thread into a real time process at highest priority*/ prio.sched_priority = SCHED_RR; sys_sched_setscheduler(0,99,&prio); return 0; }
static void restore_sched_info(struct rst_sched_param *p) { struct sched_param parm; pr_info("Restoring scheduler params %d.%d.%d\n", p->policy, p->nice, p->prio); sys_setpriority(PRIO_PROCESS, 0, p->nice); parm.sched_priority = p->prio; sys_sched_setscheduler(0, p->policy, &parm); }
long compat_sys_setpriority(u32 which, u32 who, u32 niceval) { /* sign extend which, who and niceval */ return sys_setpriority((int)which, (int)who, (int)niceval); }
long compat_sys_setpriority(u32 which, u32 who, u32 niceval) { return sys_setpriority((int)which, (int)who, (int)niceval); }