From 61cbadf5631328869ab0c432613ed5237985ac3e Mon Sep 17 00:00:00 2001 From: Paul Jackson Date: Tue, 23 Aug 2005 01:04:27 -0700 Subject: [PATCH] --- yaml --- r: 5988 b: refs/heads/master c: d10689b68aff7b48e3de1a3f7fcd6567bd2905af h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/cpuset.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 24c988b7e224..2c9a3006b5ba 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ae75784bc576a1af70509c2f3ba2b70bb65a0c58 +refs/heads/master: d10689b68aff7b48e3de1a3f7fcd6567bd2905af diff --git a/trunk/kernel/cpuset.c b/trunk/kernel/cpuset.c index 21a4e3b2cbda..e0d296c5b302 100644 --- a/trunk/kernel/cpuset.c +++ b/trunk/kernel/cpuset.c @@ -635,6 +635,23 @@ static void update_cpu_domains(struct cpuset *cur) if (par == NULL || cpus_empty(cur->cpus_allowed)) return; + /* + * Hack to avoid 2.6.13 partial node dynamic sched domain bug. + * Require the 'cpu_exclusive' cpuset to include all (or none) + * of the CPUs on each node, or return w/o changing sched domains. + * Remove this hack when dynamic sched domains fixed. + */ + { + int i, j; + + for_each_cpu_mask(i, cur->cpus_allowed) { + for_each_cpu_mask(j, node_to_cpumask(cpu_to_node(i))) { + if (!cpu_isset(j, cur->cpus_allowed)) + return; + } + } + } + /* * Get all cpus from parent's cpus_allowed not part of exclusive * children