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)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 31 May 2010 14:56:24 +0000 (16:56 +0200)
commitcc4a826a21dae60fd2c1f03beeb576280a5808ec
treefc13d49bff411a0487e808592f1724bc128e07a7
parentea17fed8d36978aa00f844949a1d820dfe58b992
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>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1275316109.27810.22969.camel@twins>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/sched.c
kernel/sched_fair.c