Kamalesh Babulal wrote: > Kamalesh Babulal wrote: >> [EMAIL PROTECTED] 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 <[EMAIL PROTECTED]> >>> --- >>> 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 <[EMAIL PROTECTED]> > ---- > > --- 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. > > >
Thanks! I'll merge the above in... Mike - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/