Messages in this thread | | | Date | Wed, 5 Mar 2014 12:59:42 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH tip] sched/rt: Fix picking RT and DL tasks from empty queue |
| |
On Tue, Mar 04, 2014 at 07:25:46PM +0400, Kirill Tkhai wrote: > The problems: > > 1)We check for rt_nr_running before call of put_prev_task(). > If previous task is RT, its rt_rq may become throttled > and dequeued after this call. > > In case of p is from rt->rq this just causes picking a task > from throttled queue, but in case of its rt_rq is child > we are guaranteed catch BUG_ON. > > 2)The same with deadline class. The only difference we operate > on only dl_rq. > > This patch fix all above and it adds a small skip in DL update > like we've already done for RT class: > > if (unlikely((s64)delta_exec <= 0)) > return; > > This will optimize sequential update_curr_dl() calls a little. >
Ah indeed, good catch that. Thanks!
| |