sched: Fix wake_affine() vs RT tasks
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Mon, 31 May 2010 10:37:30 +0000 (12:37 +0200)
committerIngo Molnar <mingo@elte.hu>
Tue, 1 Jun 2010 07:27:16 +0000 (09:27 +0200)
commite51fd5e22e12b39f49b1bb60b37b300b17378a43
tree391500ff509dc30991db38e3d54eaccfe385d1cb
parent54e88fad223c4e1d94289611a90c7fe3ebe5631b
sched: Fix wake_affine() vs RT tasks

Mike reports that since e9e9250b (sched: Scale down cpu_power due to RT
tasks), wake_affine() goes funny on RT tasks due to them still having a
!0 weight and wake_affine() still subtracts that from the rq weight.

Since nobody should be using se->weight for RT tasks, set the value to
zero. Also, since we now use ->cpu_power to normalize rq weights to
account for RT cpu usage, add that factor into the imbalance computation.

Reported-by: Mike Galbraith <efault@gmx.de>
Tested-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1275316109.27810.22969.camel@twins>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c
kernel/sched_fair.c