sched: Fix capacity calculations for SMT4
authorSrivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Tue, 8 Jun 2010 04:57:02 +0000 (14:57 +1000)
committerIngo Molnar <mingo@elte.hu>
Wed, 9 Jun 2010 08:34:54 +0000 (10:34 +0200)
commit9d5efe05eb0c904545a28b19c18b949f23334de0
treeafa28fe2f3abd6fb538a7f0039c75a5e6463eeb1
parent83cd4fe27ad8446619b2e030b171b858501de87d
sched: Fix capacity calculations for SMT4

Handle cpu capacity being reported as 0 on cores with more number of
hardware threads. For example on a Power7 core with 4 hardware
threads, core power is 1177 and thus power of each hardware thread is
1177/4 = 294. This low power can lead to capacity for each hardware
thread being calculated as 0, which leads to tasks bouncing within the
core madly!

Fix this by reporting capacity for hardware threads as 1, provided
their power is not scaled down significantly because of frequency
scaling or real-time tasks usage of cpu.

Signed-off-by: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arjan van de Ven <arjan@linux.intel.com>
LKML-Reference: <20100608045702.21D03CC895@localhost.localdomain>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
include/linux/sched.h
kernel/sched_fair.c