Messages in this thread | | | Subject | Re: [RFC 0/12][PATCH] SCHED_DEADLINE: core of the scheduling class | From | Peter Zijlstra <> | Date | Tue, 29 Dec 2009 13:25:38 +0100 |
| |
On Fri, 2009-10-16 at 17:40 +0200, Raistlin wrote: > @@ -5966,10 +5982,14 @@ void rt_mutex_setprio(struct task_struct *p, int prio) > if (running) > p->sched_class->put_prev_task(rq, p); > > - if (rt_prio(prio)) > - p->sched_class = &rt_sched_class; > - else > - p->sched_class = &fair_sched_class; > + if (deadline_task(p)) > + p->sched_class = &deadline_sched_class; > + else { > + if (rt_prio(prio)) > + p->sched_class = &rt_sched_class; > + else > + p->sched_class = &fair_sched_class; > + }
This looks wrong.
This is PI code, so the effective class should be determined based on the 'priority' not on the 'policy'.
I understand we don't yet have deadline inheritance like things in place, but this would be where we should make use of the simple ceiling protocol to boost things for now.
| |