]> git.karo-electronics.de Git - karo-tx-linux.git/commit
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)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Sun, 26 Jun 2011 16:46:39 +0000 (12:46 -0400)
commit82f2de71a7b4f618ae8ef44e4ce8052b99115189
tree7d630fcfa24b9139865519230d875bd9674f7c4d
parentd4d67e0abb92d7237a2e95dd9106bdc69723ade7
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: Paul Gortmaker <paul.gortmaker@windriver.com>
kernel/sched.c
kernel/sched_fair.c