Messages in this thread | | | Subject | Re: [PATCH] sched: remove starvation in check_preempt_equal_prio() | From | Steven Rostedt <> | Date | Tue, 24 May 2011 10:24:18 -0400 |
| |
On Tue, 2011-05-24 at 22:01 +0800, Hillf Danton wrote: > On Tue, May 24, 2011 at 9:47 PM, Peter Zijlstra <peterz@infradead.org> 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
| |