From: William Lee Irwin III <wli@holomorphy.com>
To: Andrew Morton <akpm@osdl.org>
Cc: James Bottomley <James.Bottomley@SteelEye.com>,
Jesse Barnes <jbarnes@engr.sgi.com>,
Linus Torvalds <torvalds@osdl.org>,
Nick Piggin <nickpiggin@yahoo.com.au>,
linux-kernel@vger.kernel.org
Subject: [sched] fix sched_domains hotplug bootstrap ordering vs. cpu_online_map issue
Date: Fri, 3 Sep 2004 15:45:07 -0700 [thread overview]
Message-ID: <20040903224507.GX3106@holomorphy.com> (raw)
In-Reply-To: <20040903153434.15719192.akpm@osdl.org>
William Lee Irwin III <wli@holomorphy.com> wrote:
>> This is the whole thing; the "other half" referred to a new hunk added to
>> the patch (identical to this one) posted in its entirety.
On Fri, Sep 03, 2004 at 03:34:34PM -0700, Andrew Morton wrote:
> ho-hum. changelog, please?
cpu_online_map is not set up at the time of sched domain initialization
when hotplug cpu paths are used for SMP booting. At this phase of
bootstrapping, cpu_possible_map can be used by the various
architectures using cpu hotplugging for SMP bootstrap, but the
manipulations of cpu_online_map done on behalf of NUMA architectures,
done indirectly via node_to_cpumask(), can't, because cpu_online_map
starts depopulated and hasn't yet been populated. On true NUMA
architectures this is a distinct cpumask_t from cpu_online_map and so
the unpatched code works on NUMA; on non-NUMA architectures the
definition of node_to_cpumask() this way breaks and would require an
invasive sweeping of users of node_to_cpumask() to change it to e.g.
cpu_possible_map, as cpu_possible_map is not suitable for use at
runtime as a substitute for cpu_online_map.
Signed-off-by: William Irwin <wli@holomorphy.com>
Index: wait-2.6.9-rc1-mm1/kernel/sched.c
===================================================================
--- wait-2.6.9-rc1-mm1.orig/kernel/sched.c 2004-08-28 11:41:47.000000000 -0700
+++ wait-2.6.9-rc1-mm1/kernel/sched.c 2004-08-29 10:46:52.543081208 -0700
@@ -4224,7 +4224,11 @@
sd = &per_cpu(phys_domains, i);
group = cpu_to_phys_group(i);
*sd = SD_CPU_INIT;
+#ifdef CONFIG_NUMA
sd->span = nodemask;
+#else
+ sd->span = cpu_possible_map;
+#endif
sd->parent = p;
sd->groups = &sched_group_phys[group];
@@ -4262,6 +4266,7 @@
&cpu_to_isolated_group);
}
+#ifdef CONFIG_NUMA
/* Set up physical groups */
for (i = 0; i < MAX_NUMNODES; i++) {
cpumask_t nodemask = node_to_cpumask(i);
@@ -4273,6 +4278,10 @@
init_sched_build_groups(sched_group_phys, nodemask,
&cpu_to_phys_group);
}
+#else
+ init_sched_build_groups(sched_group_phys, cpu_possible_map,
+ &cpu_to_phys_group);
+#endif
#ifdef CONFIG_NUMA
/* Set up node groups */
next prev parent reply other threads:[~2004-09-03 22:45 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-03 21:21 [Fwd: Re: SMP Panic caused by [PATCH] sched: consolidate sched domains] James Bottomley
2004-09-03 21:59 ` Andrew Morton
2004-09-03 22:13 ` James Bottomley
2004-09-03 22:22 ` William Lee Irwin III
[not found] ` <20040903153434.15719192.akpm@osdl.org>
2004-09-03 22:45 ` William Lee Irwin III [this message]
2004-09-04 1:57 ` [sched] fix sched_domains hotplug bootstrap ordering vs. cpu_online_map issue Nick Piggin
2004-09-05 11:46 ` Ingo Molnar
2004-09-05 22:35 ` James Bottomley
2004-09-06 2:48 ` Nick Piggin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040903224507.GX3106@holomorphy.com \
--to=wli@holomorphy.com \
--cc=James.Bottomley@SteelEye.com \
--cc=akpm@osdl.org \
--cc=jbarnes@engr.sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.