sched: Fix cross-sched-class wakeup preemption
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Sun, 31 Oct 2010 11:37:04 +0000 (12:37 +0100)
committerIngo Molnar <mingo@elte.hu>
Thu, 11 Nov 2010 13:37:23 +0000 (14:37 +0100)
commit1e5a74059f9059d330744eac84873b1b99657008
treef32f8ac76d5a6c49c1b4cd8f83155af00007fac0
parent2d46709082c062cae7cce1a15f8cd4cd81b92d88
sched: Fix cross-sched-class wakeup preemption

Instead of dealing with sched classes inside each check_preempt_curr()
implementation, pull out this logic into the generic wakeup preemption
path.

This fixes a hang in KVM (and others) where we are waiting for the
stop machine thread to run ...

Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Tested-by: Marcelo Tosatti <mtosatti@redhat.com>
Tested-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1288891946.2039.31.camel@laptop>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c
kernel/sched_fair.c
kernel/sched_stoptask.c