Re: [PATCH] sched: remove starvation in check_preempt_equal_prio()

From: Steven Rostedt
Date: Tue May 24 2011 - 10:24:24 EST


On Tue, 2011-05-24 at 22:01 +0800, Hillf Danton wrote:
> On Tue, May 24, 2011 at 9:47 PM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> > On Tue, 2011-05-24 at 21:34 +0800, Hillf Danton wrote:
> >> If there are pushable tasks and they are high enough in priority, in which
> >> case task p is covered, the current could keep holding its CPU.
> >
> > -ENOPARSE..
> >
>
> Here the priority is same, then pushing task p off has little difference from
> pushing any other pushable.

If task p is currently running and is a FIFO task, you do not push it
off for another task of same prio.

>
> >> Even if current task has to release its CPU, requeuing task p could result in
> >> starvation of tasks that are of same priority and have been waiting on RQ for
> >> a couple of hours:/
> >
> > Starvation of the same priority tasks is a perfectly valid situation for
> > SCHED_FIFO, also, your changelog fails to mention what you propose to do
> > about it.
> >
> I did get curr requeued, and task_woken_rt() could do what I want.
>
> If you change ENOPARSE to PARSE, I will change task_woken_rt accordingly.

I'm not sure I can change to PARSE yet.

-- Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/