Messages in this thread Patch in this message | | | Subject | [PATCH] sched: Make sure task has correct sched_class after policy change | Date | Wed, 23 Sep 2009 02:03:56 -0000 | From | Peter Williams <> |
| |
From the code in rt_mutex_setprio(), it is evident that the intention is that task's with a RT 'prio' value as a consequence of receiving a PI boost also have their 'sched_class' field set to '&rt_sched_class'. However, the code in __setscheduler() could result in this intention being frustrated.
This patch fixes this problem.
Signed-off-by: Peter Williams <pwil3058@bigpond.net.au>
diff --git a/kernel/sched.c b/kernel/sched.c --- a/kernel/sched.c +++ b/kernel/sched.c @@ -6159,6 +6159,8 @@ __setscheduler(struct rq *rq, struct tas p->normal_prio = normal_prio(p); /* we are holding p->pi_lock already */ p->prio = rt_mutex_getprio(p); + if (rt_prio(prio)) + p->sched_class = &rt_sched_class; set_load_weight(p); }
| |