sched: fair scheduler should not resched rt tasks
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Fri, 17 Oct 2008 17:27:03 +0000 (19:27 +0200)
committerIngo Molnar <mingo@elte.hu>
Mon, 20 Oct 2008 12:05:03 +0000 (14:05 +0200)
commita4c2f00f5cb848af7a8c816426b413c8e41834df
treef99d376ae43fe7e19db0f5f268c6925d8cda2107
parentffda12a17a324103e9900fa1035309811eecbfe5
sched: fair scheduler should not resched rt tasks

With use of ftrace Steven noticed that some RT tasks got rescheduled due
to sched_fair interaction.

What happens is that we reprogram the hrtick from enqueue/dequeue_fair_task()
because that can change nr_running, and thus a current tasks ideal runtime.
However, its possible the current task isn't a fair_sched_class task, and thus
doesn't have a hrtick set to change.

Fix this by wrapping those hrtick_start_fair() calls in a hrtick_update()
function, which will check for the right conditions.

Reported-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched_fair.c