diff options
Diffstat (limited to 'kernel/cpuset.c')
-rw-r--r-- | kernel/cpuset.c | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index e0d296c5b302..8ab1b4e518b8 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
@@ -627,6 +627,14 @@ static int validate_change(const struct cpuset *cur, const struct cpuset *trial) | |||
627 | * Call with cpuset_sem held. May nest a call to the | 627 | * Call with cpuset_sem held. May nest a call to the |
628 | * lock_cpu_hotplug()/unlock_cpu_hotplug() pair. | 628 | * lock_cpu_hotplug()/unlock_cpu_hotplug() pair. |
629 | */ | 629 | */ |
630 | |||
631 | /* | ||
632 | * Hack to avoid 2.6.13 partial node dynamic sched domain bug. | ||
633 | * Disable letting 'cpu_exclusive' cpusets define dynamic sched | ||
634 | * domains, until the sched domain can handle partial nodes. | ||
635 | * Remove this #if hackery when sched domains fixed. | ||
636 | */ | ||
637 | #if 0 | ||
630 | static void update_cpu_domains(struct cpuset *cur) | 638 | static void update_cpu_domains(struct cpuset *cur) |
631 | { | 639 | { |
632 | struct cpuset *c, *par = cur->parent; | 640 | struct cpuset *c, *par = cur->parent; |
@@ -636,23 +644,6 @@ static void update_cpu_domains(struct cpuset *cur) | |||
636 | return; | 644 | return; |
637 | 645 | ||
638 | /* | 646 | /* |
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 | /* | ||
656 | * Get all cpus from parent's cpus_allowed not part of exclusive | 647 | * Get all cpus from parent's cpus_allowed not part of exclusive |
657 | * children | 648 | * children |
658 | */ | 649 | */ |
@@ -684,6 +675,11 @@ static void update_cpu_domains(struct cpuset *cur) | |||
684 | partition_sched_domains(&pspan, &cspan); | 675 | partition_sched_domains(&pspan, &cspan); |
685 | unlock_cpu_hotplug(); | 676 | unlock_cpu_hotplug(); |
686 | } | 677 | } |
678 | #else | ||
679 | static void update_cpu_domains(struct cpuset *cur) | ||
680 | { | ||
681 | } | ||
682 | #endif | ||
687 | 683 | ||
688 | static int update_cpumask(struct cpuset *cs, char *buf) | 684 | static int update_cpumask(struct cpuset *cs, char *buf) |
689 | { | 685 | { |