sched: Check for pushing rt tasks after all scheduling
authorSteven Rostedt <srostedt@redhat.com>
Wed, 29 Jul 2009 04:21:22 +0000 (00:21 -0400)
committerIngo Molnar <mingo@elte.hu>
Sun, 2 Aug 2009 12:26:08 +0000 (14:26 +0200)
commitda19ab510343c6496fe8b8f890091296032025c9
treee7ec769249ccbb145a68ec7071c59088685c9926
parente709715915d69b6a929d77e7652c9c3fea61c317
sched: Check for pushing rt tasks after all scheduling

The current method for pushing RT tasks after scheduling only
happens after a context switch. But we found cases where a task
is set up on a run queue to be pushed but the push never
happens because the schedule chooses the same task.

This bug was found with the help of Gregory Haskins and the use
of ftrace (trace_printk). It tooks several days for both of us
analyzing the code and the trace output to find this.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20090729042526.205923666@goodmis.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c