diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/cpuset.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 21a4e3b2cbda..e0d296c5b302 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
| @@ -636,6 +636,23 @@ static void update_cpu_domains(struct cpuset *cur) | |||
| 636 | return; | 636 | return; |
| 637 | 637 | ||
| 638 | /* | 638 | /* |
| 639 | * Hack to avoid 2.6.13 partial node dynamic sched domain bug. | ||
| 640 | * Require the 'cpu_exclusive' cpuset to include all (or none) | ||
| 641 | * of the CPUs on each node, or return w/o changing sched domains. | ||
| 642 | * Remove this hack when dynamic sched domains fixed. | ||
| 643 | */ | ||
| 644 | { | ||
| 645 | int i, j; | ||
| 646 | |||
| 647 | for_each_cpu_mask(i, cur->cpus_allowed) { | ||
| 648 | for_each_cpu_mask(j, node_to_cpumask(cpu_to_node(i))) { | ||
| 649 | if (!cpu_isset(j, cur->cpus_allowed)) | ||
| 650 | return; | ||
| 651 | } | ||
| 652 | } | ||
| 653 | } | ||
| 654 | |||
| 655 | /* | ||
| 639 | * Get all cpus from parent's cpus_allowed not part of exclusive | 656 | * Get all cpus from parent's cpus_allowed not part of exclusive |
| 640 | * children | 657 | * children |
| 641 | */ | 658 | */ |
