sched: Fix wake_affine() vs RT tasks
commit97fc6c0d4655abc7ab58dc4c065b5f3fcde2fc6b
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Thu, 10 Feb 2011 09:23:29 +0000 (10 10:23 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 17 Feb 2011 23:37:30 +0000 (17 15:37 -0800)
tree2946cbf0965aa9025c825b19840f2b50e2914135
parent354f5613d804571fa88ecff8eec02d5ba57d8b07
sched: Fix wake_affine() vs RT tasks

Commit: e51fd5e22e12b39f49b1bb60b37b300b17378a43 upstream

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>
Signed-off-by: Mike Galbraith <efault@gmx.de>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel/sched.c
kernel/sched_fair.c