sched: Initialize power_orig for overlapping groups
authorPeter Zijlstra <peterz@infradead.org>
Wed, 11 Dec 2013 10:09:53 +0000 (11:09 +0100)
committerJiri Slaby <jslaby@suse.cz>
Wed, 12 Mar 2014 12:25:38 +0000 (13:25 +0100)
commit 8e8339a3a1069141985daaa2521ba304509ddecd upstream.

Yinghai reported that he saw a /0 in sg_capacity on his EX parts.
Make sure to always initialize power_orig now that we actually use it.

Ideally build_sched_domains() -> init_sched_groups_power() would also
initialize this; but for some yet unexplained reason some setups seem
to miss updates there.

Reported-by: Yinghai Lu <yinghai@kernel.org>
Tested-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/n/tip-l8ng2m9uml6fhibln8wqpom7@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
kernel/sched/core.c

index bc2f26d03751ae287fc5f2425034c84c9235fa3f..1313c6ccb03ad8b4b7d5babd2d08f5a4d3fc753d 100644 (file)
@@ -5332,6 +5332,7 @@ build_overlap_sched_groups(struct sched_domain *sd, int cpu)
                 * die on a /0 trap.
                 */
                sg->sgp->power = SCHED_POWER_SCALE * cpumask_weight(sg_span);
+               sg->sgp->power_orig = sg->sgp->power;
 
                /*
                 * Make sure the first group of this domain contains the