aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/cpuset.c32
1 files changed, 13 insertions, 19 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index d7f4d0c95737..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
630static void update_cpu_domains(struct cpuset *cur) 638static void update_cpu_domains(struct cpuset *cur)
631{ 639{
632 struct cpuset *c, *par = cur->parent; 640 struct cpuset *c, *par = cur->parent;
@@ -636,25 +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 cpumask_t mask = node_to_cpumask(cpu_to_node(i));
649
650 for_each_cpu_mask(j, mask) {
651 if (!cpu_isset(j, cur->cpus_allowed))
652 return;
653 }
654 }
655 }
656
657 /*
658 * 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
659 * children 648 * children
660 */ 649 */
@@ -686,6 +675,11 @@ static void update_cpu_domains(struct cpuset *cur)
686 partition_sched_domains(&pspan, &cspan); 675 partition_sched_domains(&pspan, &cspan);
687 unlock_cpu_hotplug(); 676 unlock_cpu_hotplug();
688} 677}
678#else
679static void update_cpu_domains(struct cpuset *cur)
680{
681}
682#endif
689 683
690static int update_cpumask(struct cpuset *cs, char *buf) 684static int update_cpumask(struct cpuset *cs, char *buf)
691{ 685{