diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2012-05-31 14:47:33 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-06-06 16:52:26 +0200 |
commit | c1174876874dcf8986806e4dad3d7d07af20b439 (patch) | |
tree | 7e2ea14ba9421bddd63e1810716f1929c753e28b /kernel/sched/sched.h | |
parent | sched/rt: Fix lockdep annotation within find_lock_lowest_rq() (diff) | |
download | linux-c1174876874dcf8986806e4dad3d7d07af20b439.tar.xz linux-c1174876874dcf8986806e4dad3d7d07af20b439.zip |
sched: Fix domain iteration
Weird topologies can lead to asymmetric domain setups. This needs
further consideration since these setups are typically non-minimal
too.
For now, make it work by adding an extra mask selecting which CPUs
are allowed to iterate up.
The topology that triggered it is the one from David Rientjes:
10 20 20 30
20 10 20 20
20 20 10 20
30 20 20 10
resulting in boxes that wouldn't even boot.
Reported-by: David Rientjes <rientjes@google.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/n/tip-3p86l9cuaqnxz7uxsojmz5rm@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to '')
-rw-r--r-- | kernel/sched/sched.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index ba9dccfd24ce..6d52cea7f33d 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -526,6 +526,8 @@ static inline struct sched_domain *highest_flag_domain(int cpu, int flag) DECLARE_PER_CPU(struct sched_domain *, sd_llc); DECLARE_PER_CPU(int, sd_llc_id); +extern int group_balance_cpu(struct sched_group *sg); + #endif /* CONFIG_SMP */ #include "stats.h" |