Re: [PATCH tip] sched/rt: Fix picking RT and DL tasks from empty queue

From: Peter Zijlstra
Date: Wed Mar 05 2014 - 07:00:03 EST


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!
--
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/