From: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
To: travis@sgi.com
Cc: Andrew Morton <akpm@linux-foundation.org>,
Andi Kleen <ak@suse.de>, Christoph Lameter <clameter@sgi.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] ppc64: Convert cpu_sibling_map to a per_cpu data array
Date: Fri, 07 Sep 2007 18:29:35 +0530 [thread overview]
Message-ID: <46E14B37.4030007@linux.vnet.ibm.com> (raw)
In-Reply-To: <46E1337D.3090005@linux.vnet.ibm.com>
Kamalesh Babulal wrote:
> travis@sgi.com wrote:
>> Convert cpu_sibling_map to a per_cpu cpumask_t array for the ppc64
>> architecture.
>>
>> Note: these changes have not been built nor tested.
>>
>> Note: I also don't know if these changes are particularly
>> relevant for the ppc64 architecture.
>>
>> Signed-off-by: Mike Travis <travis@sgi.com>
>> ---
>> arch/powerpc/kernel/setup-common.c | 4 ++--
>> arch/powerpc/kernel/smp.c | 4 ++--
>> arch/powerpc/platforms/cell/cbe_cpufreq.c | 2 +-
>> include/asm-powerpc/smp.h | 3 ++-
>> include/asm-powerpc/topology.h | 2 +-
>> 5 files changed, 8 insertions(+), 7 deletions(-)
>>
>> --- a/arch/powerpc/kernel/setup-common.c
>> +++ b/arch/powerpc/kernel/setup-common.c
>> @@ -415,9 +415,9 @@
>> * Do the sibling map; assume only two threads per processor.
>> */
>> for_each_possible_cpu(cpu) {
>> - cpu_set(cpu, cpu_sibling_map[cpu]);
>> + cpu_set(cpu, cpu_sibling_map(cpu));
>> if (cpu_has_feature(CPU_FTR_SMT))
>> - cpu_set(cpu ^ 0x1, cpu_sibling_map[cpu]);
>> + cpu_set(cpu ^ 0x1, cpu_sibling_map(cpu));
>> }
>>
>> vdso_data->processorCount = num_present_cpus();
>> --- a/arch/powerpc/kernel/smp.c
>> +++ b/arch/powerpc/kernel/smp.c
>> @@ -61,11 +61,11 @@
>>
>> cpumask_t cpu_possible_map = CPU_MASK_NONE;
>> cpumask_t cpu_online_map = CPU_MASK_NONE;
>> -cpumask_t cpu_sibling_map[NR_CPUS] = { [0 ... NR_CPUS-1] =
>> CPU_MASK_NONE };
>> +DEFINE_PER_CPU(cpumask_t, cpu_sibling_map) = CPU_MASK_NONE;
>>
>> EXPORT_SYMBOL(cpu_online_map);
>> EXPORT_SYMBOL(cpu_possible_map);
>> -EXPORT_SYMBOL(cpu_sibling_map);
>> +EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
>>
>> /* SMP operations for this machine */
>> struct smp_ops_t *smp_ops;
>> --- a/arch/powerpc/platforms/cell/cbe_cpufreq.c
>> +++ b/arch/powerpc/platforms/cell/cbe_cpufreq.c
>> @@ -117,7 +117,7 @@
>> policy->cur = cbe_freqs[cur_pmode].frequency;
>>
>> #ifdef CONFIG_SMP
>> - policy->cpus = cpu_sibling_map[policy->cpu];
>> + policy->cpus = cpu_sibling_map(policy->cpu);
>> #endif
>>
>> cpufreq_frequency_table_get_attr(cbe_freqs, policy->cpu);
>> --- a/include/asm-powerpc/smp.h
>> +++ b/include/asm-powerpc/smp.h
>> @@ -58,7 +58,8 @@
>> (smp_hw_index[(cpu)] = (phys))
>> #endif
>>
>> -extern cpumask_t cpu_sibling_map[NR_CPUS];
>> +DECLARE_PER_CPU(cpumask_t, cpu_sibling_map);
>> +#define cpu_sibling_map(cpu) per_cpu(cpu_sibling_map, cpu)
>>
>> /* Since OpenPIC has only 4 IPIs, we use slightly different message
>> numbers.
>> *
>> --- a/include/asm-powerpc/topology.h
>> +++ b/include/asm-powerpc/topology.h
>> @@ -108,7 +108,7 @@
>> #ifdef CONFIG_PPC64
>> #include <asm/smp.h>
>>
>> -#define topology_thread_siblings(cpu) (cpu_sibling_map[cpu])
>> +#define topology_thread_siblings(cpu) (cpu_sibling_map(cpu))
>> #endif
>> #endif
>>
>>
>>
> Hi Mike,
>
> After applying the patch, the build fails with following error
>
> CHK include/linux/version.h
> CHK include/linux/utsrelease.h
> CC arch/powerpc/kernel/asm-offsets.s
> In file included from include/linux/smp.h:19,
> from include/linux/topology.h:33,
> from include/linux/mmzone.h:660,
> from include/linux/gfp.h:4,
> from include/linux/slab.h:14,
> from include/linux/percpu.h:5,
> from include/asm/time.h:18,
> from include/asm/cputime.h:26,
> from include/linux/sched.h:65,
> from arch/powerpc/kernel/asm-offsets.c:17:
> include/asm/smp.h:61: error: expected declaration specifiers or ‘...’
> before ‘cpu_sibling_map’
> include/asm/smp.h:61: warning: data definition has no type or storage
> class
> include/asm/smp.h:61: warning: type defaults to ‘int’ in declaration
> of ‘DECLARE_PER_CPU’
> make[1]: *** [arch/powerpc/kernel/asm-offsets.s] Error 1
> make: *** [prepare0] Error 2
>
> Thanks & Regards,
> Kamalesh Babulal.
Hi Make,
I tried to debug and probably the patch below could help the build error
Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
----
--- a/include/asm-powerpc/smp.h 2007-09-07 18:15:43.000000000 +0530
+++ b/include/asm-powerpc/smp.h 2007-09-07 18:16:02.000000000 +0530
@@ -25,6 +25,7 @@
#ifdef CONFIG_PPC64
#include <asm/paca.h>
+#include <asm/percpu.h>
#endif
extern int boot_cpuid;
---
Thanks & Regards,
Kamalesh Babulal.
WARNING: multiple messages have this Message-ID (diff)
From: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
To: travis@sgi.com
Cc: Andrew Morton <akpm@linux-foundation.org>,
Andi Kleen <ak@suse.de>, Christoph Lameter <clameter@sgi.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] ppc64: Convert cpu_sibling_map to a per_cpu data array
Date: Fri, 07 Sep 2007 18:29:35 +0530 [thread overview]
Message-ID: <46E14B37.4030007@linux.vnet.ibm.com> (raw)
In-Reply-To: <46E1337D.3090005@linux.vnet.ibm.com>
Kamalesh Babulal wrote:
> travis@sgi.com wrote:
>> Convert cpu_sibling_map to a per_cpu cpumask_t array for the ppc64
>> architecture.
>>
>> Note: these changes have not been built nor tested.
>>
>> Note: I also don't know if these changes are particularly
>> relevant for the ppc64 architecture.
>>
>> Signed-off-by: Mike Travis <travis@sgi.com>
>> ---
>> arch/powerpc/kernel/setup-common.c | 4 ++--
>> arch/powerpc/kernel/smp.c | 4 ++--
>> arch/powerpc/platforms/cell/cbe_cpufreq.c | 2 +-
>> include/asm-powerpc/smp.h | 3 ++-
>> include/asm-powerpc/topology.h | 2 +-
>> 5 files changed, 8 insertions(+), 7 deletions(-)
>>
>> --- a/arch/powerpc/kernel/setup-common.c
>> +++ b/arch/powerpc/kernel/setup-common.c
>> @@ -415,9 +415,9 @@
>> * Do the sibling map; assume only two threads per processor.
>> */
>> for_each_possible_cpu(cpu) {
>> - cpu_set(cpu, cpu_sibling_map[cpu]);
>> + cpu_set(cpu, cpu_sibling_map(cpu));
>> if (cpu_has_feature(CPU_FTR_SMT))
>> - cpu_set(cpu ^ 0x1, cpu_sibling_map[cpu]);
>> + cpu_set(cpu ^ 0x1, cpu_sibling_map(cpu));
>> }
>>
>> vdso_data->processorCount = num_present_cpus();
>> --- a/arch/powerpc/kernel/smp.c
>> +++ b/arch/powerpc/kernel/smp.c
>> @@ -61,11 +61,11 @@
>>
>> cpumask_t cpu_possible_map = CPU_MASK_NONE;
>> cpumask_t cpu_online_map = CPU_MASK_NONE;
>> -cpumask_t cpu_sibling_map[NR_CPUS] = { [0 ... NR_CPUS-1] =
>> CPU_MASK_NONE };
>> +DEFINE_PER_CPU(cpumask_t, cpu_sibling_map) = CPU_MASK_NONE;
>>
>> EXPORT_SYMBOL(cpu_online_map);
>> EXPORT_SYMBOL(cpu_possible_map);
>> -EXPORT_SYMBOL(cpu_sibling_map);
>> +EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
>>
>> /* SMP operations for this machine */
>> struct smp_ops_t *smp_ops;
>> --- a/arch/powerpc/platforms/cell/cbe_cpufreq.c
>> +++ b/arch/powerpc/platforms/cell/cbe_cpufreq.c
>> @@ -117,7 +117,7 @@
>> policy->cur = cbe_freqs[cur_pmode].frequency;
>>
>> #ifdef CONFIG_SMP
>> - policy->cpus = cpu_sibling_map[policy->cpu];
>> + policy->cpus = cpu_sibling_map(policy->cpu);
>> #endif
>>
>> cpufreq_frequency_table_get_attr(cbe_freqs, policy->cpu);
>> --- a/include/asm-powerpc/smp.h
>> +++ b/include/asm-powerpc/smp.h
>> @@ -58,7 +58,8 @@
>> (smp_hw_index[(cpu)] = (phys))
>> #endif
>>
>> -extern cpumask_t cpu_sibling_map[NR_CPUS];
>> +DECLARE_PER_CPU(cpumask_t, cpu_sibling_map);
>> +#define cpu_sibling_map(cpu) per_cpu(cpu_sibling_map, cpu)
>>
>> /* Since OpenPIC has only 4 IPIs, we use slightly different message
>> numbers.
>> *
>> --- a/include/asm-powerpc/topology.h
>> +++ b/include/asm-powerpc/topology.h
>> @@ -108,7 +108,7 @@
>> #ifdef CONFIG_PPC64
>> #include <asm/smp.h>
>>
>> -#define topology_thread_siblings(cpu) (cpu_sibling_map[cpu])
>> +#define topology_thread_siblings(cpu) (cpu_sibling_map(cpu))
>> #endif
>> #endif
>>
>>
>>
> Hi Mike,
>
> After applying the patch, the build fails with following error
>
> CHK include/linux/version.h
> CHK include/linux/utsrelease.h
> CC arch/powerpc/kernel/asm-offsets.s
> In file included from include/linux/smp.h:19,
> from include/linux/topology.h:33,
> from include/linux/mmzone.h:660,
> from include/linux/gfp.h:4,
> from include/linux/slab.h:14,
> from include/linux/percpu.h:5,
> from include/asm/time.h:18,
> from include/asm/cputime.h:26,
> from include/linux/sched.h:65,
> from arch/powerpc/kernel/asm-offsets.c:17:
> include/asm/smp.h:61: error: expected declaration specifiers or ?...?
> before ?cpu_sibling_map?
> include/asm/smp.h:61: warning: data definition has no type or storage
> class
> include/asm/smp.h:61: warning: type defaults to ?int? in declaration
> of ?DECLARE_PER_CPU?
> make[1]: *** [arch/powerpc/kernel/asm-offsets.s] Error 1
> make: *** [prepare0] Error 2
>
> Thanks & Regards,
> Kamalesh Babulal.
Hi Make,
I tried to debug and probably the patch below could help the build error
Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
----
--- a/include/asm-powerpc/smp.h 2007-09-07 18:15:43.000000000 +0530
+++ b/include/asm-powerpc/smp.h 2007-09-07 18:16:02.000000000 +0530
@@ -25,6 +25,7 @@
#ifdef CONFIG_PPC64
#include <asm/paca.h>
+#include <asm/percpu.h>
#endif
extern int boot_cpuid;
---
Thanks & Regards,
Kamalesh Babulal.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-09-07 13:01 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-07 4:09 [PATCH 0/3] core: fix build error when referencing arch specific structures travis
2007-09-07 4:09 ` travis
2007-09-07 4:09 ` [PATCH 1/3] core: Provide an arch independent means of accessing cpu_sibling_map travis
2007-09-07 4:09 ` travis
2007-09-07 4:09 ` [PATCH 2/3] ia64: Convert cpu_sibling_map to a per_cpu data array travis
2007-09-07 4:09 ` travis
2007-09-07 4:09 ` [PATCH 3/3] ppc64: " travis
2007-09-07 4:09 ` travis
2007-09-07 11:18 ` Kamalesh Babulal
2007-09-07 11:18 ` Kamalesh Babulal
2007-09-07 12:59 ` Kamalesh Babulal [this message]
2007-09-07 12:59 ` Kamalesh Babulal
2007-09-07 15:36 ` Mike Travis
2007-09-07 15:36 ` Mike Travis
2007-09-07 7:28 ` [PATCH 0/3] core: fix build error when referencing arch specific structures Andi Kleen
2007-09-07 7:28 ` Andi Kleen
2007-09-07 10:56 ` Andrew Morton
2007-09-07 10:56 ` Andrew Morton
2007-09-07 15:47 ` Mike Travis
2007-09-07 15:47 ` Mike Travis
2007-09-07 15:43 ` Mike Travis
2007-09-07 15:43 ` Mike Travis
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=46E14B37.4030007@linux.vnet.ibm.com \
--to=kamalesh@linux.vnet.ibm.com \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=travis@sgi.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.