Skip to content

Commit 212d6d2

Browse files
Paul JacksonLinus Torvalds
authored andcommitted
[PATCH] completely disable cpu_exclusive sched domain
At the suggestion of Nick Piggin and Dinakar, totally disable the facility to allow cpu_exclusive cpusets to define dynamic sched domains in Linux 2.6.13, in order to avoid problems first reported by John Hawkes (corrupt sched data structures and kernel oops). This has been built for ppc64, i386, ia64, x86_64, sparc, alpha. It has been built, booted and tested for cpuset functionality on an SN2 (ia64). Dinakar or Nick - could you verify that it for sure does avoid the problems Hawkes reported. Hawkes is out of town, and I don't have the recipe to reproduce what he found. Signed-off-by: Paul Jackson <pj@sgi.com> Acked-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1 parent ca2f3da commit 212d6d2

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

kernel/cpuset.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,14 @@ static int validate_change(const struct cpuset *cur, const struct cpuset *trial)
627627
* Call with cpuset_sem held. May nest a call to the
628628
* lock_cpu_hotplug()/unlock_cpu_hotplug() pair.
629629
*/
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
630638
static void update_cpu_domains(struct cpuset *cur)
631639
{
632640
struct cpuset *c, *par = cur->parent;
@@ -667,6 +675,11 @@ static void update_cpu_domains(struct cpuset *cur)
667675
partition_sched_domains(&pspan, &cspan);
668676
unlock_cpu_hotplug();
669677
}
678+
#else
679+
static void update_cpu_domains(struct cpuset *cur)
680+
{
681+
}
682+
#endif
670683

671684
static int update_cpumask(struct cpuset *cs, char *buf)
672685
{

0 commit comments

Comments
 (0)