From: Matthew Dobson <colpatch@us.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Anton Blanchard <anton@samba.org>,
LKML <linux-kernel@vger.kernel.org>,
LSE Tech <lse-tech@lists.sourceforge.net>,
Nathan Lynch <nathanl@austin.ibm.com>
Subject: Re: [PATCH] Create cpu_sibling_map for PPC64
Date: Mon, 02 Aug 2004 14:45:59 -0700 [thread overview]
Message-ID: <1091483158.4415.52.camel@arrakis> (raw)
In-Reply-To: <20040731214512.36123c10.akpm@osdl.org>
On Sat, 2004-07-31 at 21:45, Andrew Morton wrote:
> Matthew Dobson <colpatch@us.ibm.com> wrote:
> >
> > In light of some proposed changes in the sched_domains code, I coded up
> > this little ditty that simply creates and populates a cpu_sibling_map
> > for PPC64 machines.
>
> err, did you compile it?
Ok... beyond not compiling it, I must have had my brain turned off when
I pushed the patch forward from 2.6.7-mm? to 2.6.8-rc2-mm1, because
cpu_sibling_map[] is already there, although only conditionally defined
for CONFIG_SCHED_SMT. Talking to PPC developers at OLS, I think
cpu_sibling_map[] has (or more properly, will have) uses outside
sched_domains and thus deserves an unconditional definition. Here's a
patch to change that.
[mcd@arrakis source]$ diffstat
~/linux/patches/ppc64-cpu_sibling_map.patch
arch/ppc64/kernel/smp.c | 7 +------
include/asm-ppc64/smp.h | 4 +---
2 files changed, 2 insertions(+), 9 deletions(-)
-Matt
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.8-rc2-mm1/arch/ppc64/kernel/smp.c linux-2.6.8-rc2-mm1+ppc64-cpu_sibling_map/arch/ppc64/kernel/smp.c
--- linux-2.6.8-rc2-mm1/arch/ppc64/kernel/smp.c 2004-07-28 10:50:29.000000000 -0700
+++ linux-2.6.8-rc2-mm1+ppc64-cpu_sibling_map/arch/ppc64/kernel/smp.c 2004-08-02 14:27:18.000000000 -0700
@@ -55,15 +55,13 @@
#include <asm/rtas.h>
int smp_threads_ready;
-#ifdef CONFIG_SCHED_SMT
-cpumask_t cpu_sibling_map[NR_CPUS];
-#endif
unsigned long cache_decay_ticks;
cpumask_t cpu_possible_map = CPU_MASK_NONE;
cpumask_t cpu_online_map = CPU_MASK_NONE;
cpumask_t cpu_available_map = CPU_MASK_NONE;
cpumask_t cpu_present_at_boot = CPU_MASK_NONE;
+cpumask_t cpu_sibling_map[NR_CPUS] = { [0 ... NR_CPUS-1] = CPU_MASK_NONE };
EXPORT_SYMBOL(cpu_online_map);
EXPORT_SYMBOL(cpu_possible_map);
@@ -448,14 +446,11 @@ static inline void look_for_more_cpus(vo
for (i = 0; i < maxcpus; i++)
cpu_set(i, cpu_possible_map);
-#ifdef CONFIG_SCHED_SMT
- memset(cpu_sibling_map, 0, sizeof(cpu_sibling_map));
for_each_cpu(i) {
cpu_set(i, cpu_sibling_map[i]);
if (cur_cpu_spec->cpu_features & CPU_FTR_SMT)
cpu_set(i^1, cpu_sibling_map[i]);
}
-#endif
}
#else /* ... CONFIG_HOTPLUG_CPU */
static inline int __devinit smp_startup_cpu(unsigned int lcpu)
diff -Nurp --exclude-from=/home/mcd/.dontdiff linux-2.6.8-rc2-mm1/include/asm-ppc64/smp.h linux-2.6.8-rc2-mm1+ppc64-cpu_sibling_map/include/asm-ppc64/smp.h
--- linux-2.6.8-rc2-mm1/include/asm-ppc64/smp.h 2004-07-28 10:50:50.000000000 -0700
+++ linux-2.6.8-rc2-mm1+ppc64-cpu_sibling_map/include/asm-ppc64/smp.h 2004-08-02 14:24:43.000000000 -0700
@@ -49,6 +49,7 @@ extern cpumask_t cpu_present_at_boot;
extern cpumask_t cpu_online_map;
extern cpumask_t cpu_possible_map;
extern cpumask_t cpu_available_map;
+extern cpumask_t cpu_sibling_map[NR_CPUS];
#define cpu_present_at_boot(cpu) cpu_isset(cpu, cpu_present_at_boot)
#define cpu_available(cpu) cpu_isset(cpu, cpu_available_map)
@@ -73,9 +74,6 @@ void smp_init_pSeries(void);
extern int __cpu_disable(void);
extern void __cpu_die(unsigned int cpu);
extern void cpu_die(void) __attribute__((noreturn));
-#ifdef CONFIG_SCHED_SMT
-extern cpumask_t cpu_sibling_map[NR_CPUS];
-#endif
#endif /* !(CONFIG_SMP) */
#define get_hard_smp_processor_id(CPU) (paca[(CPU)].hw_cpu_id)
prev parent reply other threads:[~2004-08-02 21:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-28 21:19 [PATCH] Create cpu_sibling_map for PPC64 Matthew Dobson
2004-08-01 4:45 ` Andrew Morton
2004-08-02 21:16 ` Matthew Dobson
2004-08-02 21:45 ` Matthew Dobson [this message]
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=1091483158.4415.52.camel@arrakis \
--to=colpatch@us.ibm.com \
--cc=akpm@osdl.org \
--cc=anton@samba.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lse-tech@lists.sourceforge.net \
--cc=nathanl@austin.ibm.com \
/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.