* [PATCH 2.6.13-rc7 1/2] undo partial cpu_exclusive sched domain disabling
@ 2005-08-25 19:47 Paul Jackson
2005-08-25 19:47 ` [PATCH 2.6.13-rc7 2/2] completely disable cpu_exclusive sched domain Paul Jackson
0 siblings, 1 reply; 3+ messages in thread
From: Paul Jackson @ 2005-08-25 19:47 UTC (permalink / raw)
To: torvalds, Andrew Morton
Cc: nickpiggin, linux-ia64, linux-kernel, paulus, mingo, hawkes,
Paul Jackson, dino
The partial disabling of Dinakar's new facility to allow
cpu_exclusive cpusets to define dynamic sched domains
doesn't go far enough. At the suggestion of Nick Piggin
and Dinakar, let us instead totally disable this facility
for 2.6.13, in order to avoid problems first reported
by John Hawkes (corrupt sched data structures and kernel oops).
This patch removes the partial disabling code in 2.6.13-rc7,
in anticipation of the next patch, which will totally disable
it instead.
Signed-off-by: Paul Jackson <pj@sgi.com>
Index: linux-2.6.13-rc7/kernel/cpuset.c
===================================================================
--- linux-2.6.13-rc7.orig/kernel/cpuset.c
+++ linux-2.6.13-rc7/kernel/cpuset.c
@@ -636,25 +636,6 @@ static void update_cpu_domains(struct cp
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) {
- cpumask_t mask = node_to_cpumask(cpu_to_node(i));
-
- for_each_cpu_mask(j, mask) {
- if (!cpu_isset(j, cur->cpus_allowed))
- return;
- }
- }
- }
-
- /*
* Get all cpus from parent's cpus_allowed not part of exclusive
* children
*/
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.650.933.1373
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH 2.6.13-rc7 2/2] completely disable cpu_exclusive sched domain
2005-08-25 19:47 [PATCH 2.6.13-rc7 1/2] undo partial cpu_exclusive sched domain disabling Paul Jackson
@ 2005-08-25 19:47 ` Paul Jackson
2005-08-26 1:32 ` Nick Piggin
0 siblings, 1 reply; 3+ messages in thread
From: Paul Jackson @ 2005-08-25 19:47 UTC (permalink / raw)
To: torvalds, Andrew Morton
Cc: nickpiggin, linux-ia64, linux-kernel, paulus, mingo, hawkes,
Paul Jackson, dino
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>
Index: linux-2.6.13-rc7/kernel/cpuset.c
===================================================================
--- linux-2.6.13-rc7.orig/kernel/cpuset.c
+++ linux-2.6.13-rc7/kernel/cpuset.c
@@ -627,6 +627,14 @@ static int validate_change(const struct
* Call with cpuset_sem held. May nest a call to the
* lock_cpu_hotplug()/unlock_cpu_hotplug() pair.
*/
+
+/*
+ * Hack to avoid 2.6.13 partial node dynamic sched domain bug.
+ * Disable letting 'cpu_exclusive' cpusets define dynamic sched
+ * domains, until the sched domain can handle partial nodes.
+ * Remove this #if hackery when sched domains fixed.
+ */
+#if 0
static void update_cpu_domains(struct cpuset *cur)
{
struct cpuset *c, *par = cur->parent;
@@ -667,6 +675,11 @@ static void update_cpu_domains(struct cp
partition_sched_domains(&pspan, &cspan);
unlock_cpu_hotplug();
}
+#else
+static void update_cpu_domains(struct cpuset *cur)
+{
+}
+#endif
static int update_cpumask(struct cpuset *cs, char *buf)
{
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.650.933.1373
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH 2.6.13-rc7 2/2] completely disable cpu_exclusive sched domain
2005-08-25 19:47 ` [PATCH 2.6.13-rc7 2/2] completely disable cpu_exclusive sched domain Paul Jackson
@ 2005-08-26 1:32 ` Nick Piggin
0 siblings, 0 replies; 3+ messages in thread
From: Nick Piggin @ 2005-08-26 1:32 UTC (permalink / raw)
To: Paul Jackson
Cc: torvalds, Andrew Morton, linux-ia64, linux-kernel, paulus, mingo,
hawkes, dino
Paul Jackson wrote:
> 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.
>
Thanks Paul, I was never able to reproduce the problem, but
I'm sure Dinakar should be able to test.
Acked-by: Nick Piggin <npiggin@suse.de>
--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-08-26 1:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-25 19:47 [PATCH 2.6.13-rc7 1/2] undo partial cpu_exclusive sched domain disabling Paul Jackson
2005-08-25 19:47 ` [PATCH 2.6.13-rc7 2/2] completely disable cpu_exclusive sched domain Paul Jackson
2005-08-26 1:32 ` Nick Piggin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox