[PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell <[EMAIL PROTECTED]> Cc: Andi Kleen <[EMAIL PROTECTED]> Cc: Sam Ravnborg <[EMAIL PROTECTED]> Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> Signed-off-by: Mike Travis <[EMAIL PROTECTED]> --- V1->V2: - Use def_bool as suggested by Randy. V3->v4: - change config ARCH_SETS_UP_PER_CPU_AREA to a global var and use select HAVE_SETUP_PER_CPU_AREA to specify. --- arch/Kconfig |3 +++ arch/ia64/Kconfig|1 + arch/powerpc/Kconfig |4 arch/sparc64/Kconfig |1 + arch/x86/Kconfig |1 + include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 9 files changed, 12 insertions(+), 7 deletions(-) --- a/arch/Kconfig +++ b/arch/Kconfig @@ -29,3 +29,6 @@ config KPROBES config HAVE_KPROBES def_bool n + +config HAVE_SETUP_PER_CPU_AREA + def_bool n --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -17,6 +17,7 @@ config IA64 select ARCH_SUPPORTS_MSI select HAVE_OPROFILE select HAVE_KPROBES + select HAVE_SETUP_PER_CPU_AREA default y help The Itanium Processor Family is Intel's 64-bit successor to --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -42,6 +42,10 @@ config GENERIC_HARDIRQS bool default y +config PPC64 + select HAVE_SETUP_PER_CPU_AREA + default y + config IRQ_PER_CPU bool default y --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -10,6 +10,7 @@ config SPARC default y select HAVE_OPROFILE select HAVE_KPROBES + select HAVE_SETUP_PER_CPU_AREA config SPARC64 bool --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -20,6 +20,7 @@ config X86 def_bool y select HAVE_OPROFILE select HAVE_KPROBES + select HAVE_SETUP_PER_CPU_AREA if ARCH = "x86_64" config GENERIC_LOCKBREAK def_bool n --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -3,7 +3,6 @@ #include #include -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; --- a/include/asm-s390/percpu.h +++ b/include/asm-s390/percpu.h @@ -4,8 +4,6 @@ #include #include -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the cpu's lowcore memory. --- a/include/asm-x86/percpu_32.h +++ b/include/asm-x86/percpu_32.h @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; --- a/init/main.c +++ b/init/main.c @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_HAVE_SETUP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_HAVE_SETUP_PER_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) -- -- 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/
Re: [PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
On Mon, Jan 07, 2008 at 06:11:43PM -0800, [EMAIL PROTECTED] wrote: > V1->V2: > - Use def_bool as suggested by Randy. > > The use of the __GENERIC_PERCPU is a bit problematic since arches > may want to run their own percpu setup while using the generic > percpu definitions. Replace it through a kconfig variable. > > > > Cc: Rusty Russell <[EMAIL PROTECTED]> > Cc: Andi Kleen <[EMAIL PROTECTED]> > Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> > Signed-off-by: Mike Travis <[EMAIL PROTECTED]> > > --- > arch/ia64/Kconfig|3 +++ > arch/powerpc/Kconfig |3 +++ > arch/sparc64/Kconfig |3 +++ > arch/x86/Kconfig |3 +++ > include/asm-generic/percpu.h |1 - > include/asm-s390/percpu.h|2 -- > include/asm-x86/percpu_32.h |2 -- > init/main.c |4 ++-- > 8 files changed, 14 insertions(+), 7 deletions(-) > > --- a/arch/ia64/Kconfig > +++ b/arch/ia64/Kconfig > @@ -80,6 +80,9 @@ config GENERIC_TIME_VSYSCALL > bool > default y > > +config ARCH_SETS_UP_PER_CPU_AREA > + def_bool y > + > config DMI > bool > default y > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS > bool > default y > > +config ARCH_SETS_UP_PER_CPU_AREA > + def_bool PPC64 > + > config IRQ_PER_CPU > bool > default y Please do not create one variable per arch to enable this functionality. Define one common variable and name it: config HAVE_SETUP_PER_CPU_AREA and then for the arch's that supports it you select this symbol. For X86 it would look like: config X86 + select HAVE_SETUP_PER_CPU_AREA This is the recommended methiond today - albeit not widely used yet. Sam -- 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/
Re: [PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
On Mon, Jan 07, 2008 at 06:11:43PM -0800, [EMAIL PROTECTED] wrote: V1-V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Mike Travis [EMAIL PROTECTED] --- arch/ia64/Kconfig|3 +++ arch/powerpc/Kconfig |3 +++ arch/sparc64/Kconfig |3 +++ arch/x86/Kconfig |3 +++ include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 8 files changed, 14 insertions(+), 7 deletions(-) --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -80,6 +80,9 @@ config GENERIC_TIME_VSYSCALL bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config DMI bool default y --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool PPC64 + config IRQ_PER_CPU bool default y Please do not create one variable per arch to enable this functionality. Define one common variable and name it: config HAVE_SETUP_PER_CPU_AREA and then for the arch's that supports it you select this symbol. For X86 it would look like: config X86 + select HAVE_SETUP_PER_CPU_AREA This is the recommended methiond today - albeit not widely used yet. Sam -- 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/
[PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Cc: Sam Ravnborg [EMAIL PROTECTED] Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Mike Travis [EMAIL PROTECTED] --- V1-V2: - Use def_bool as suggested by Randy. V3-v4: - change config ARCH_SETS_UP_PER_CPU_AREA to a global var and use select HAVE_SETUP_PER_CPU_AREA to specify. --- arch/Kconfig |3 +++ arch/ia64/Kconfig|1 + arch/powerpc/Kconfig |4 arch/sparc64/Kconfig |1 + arch/x86/Kconfig |1 + include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 9 files changed, 12 insertions(+), 7 deletions(-) --- a/arch/Kconfig +++ b/arch/Kconfig @@ -29,3 +29,6 @@ config KPROBES config HAVE_KPROBES def_bool n + +config HAVE_SETUP_PER_CPU_AREA + def_bool n --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -17,6 +17,7 @@ config IA64 select ARCH_SUPPORTS_MSI select HAVE_OPROFILE select HAVE_KPROBES + select HAVE_SETUP_PER_CPU_AREA default y help The Itanium Processor Family is Intel's 64-bit successor to --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -42,6 +42,10 @@ config GENERIC_HARDIRQS bool default y +config PPC64 + select HAVE_SETUP_PER_CPU_AREA + default y + config IRQ_PER_CPU bool default y --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -10,6 +10,7 @@ config SPARC default y select HAVE_OPROFILE select HAVE_KPROBES + select HAVE_SETUP_PER_CPU_AREA config SPARC64 bool --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -20,6 +20,7 @@ config X86 def_bool y select HAVE_OPROFILE select HAVE_KPROBES + select HAVE_SETUP_PER_CPU_AREA if ARCH = x86_64 config GENERIC_LOCKBREAK def_bool n --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -3,7 +3,6 @@ #include linux/compiler.h #include linux/threads.h -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; --- a/include/asm-s390/percpu.h +++ b/include/asm-s390/percpu.h @@ -4,8 +4,6 @@ #include linux/compiler.h #include asm/lowcore.h -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the cpu's lowcore memory. --- a/include/asm-x86/percpu_32.h +++ b/include/asm-x86/percpu_32.h @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; --- a/init/main.c +++ b/init/main.c @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_HAVE_SETUP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_HAVE_SETUP_PER_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) -- -- 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/
[PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
V1->V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell <[EMAIL PROTECTED]> Cc: Andi Kleen <[EMAIL PROTECTED]> Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> Signed-off-by: Mike Travis <[EMAIL PROTECTED]> --- arch/ia64/Kconfig|3 +++ arch/powerpc/Kconfig |3 +++ arch/sparc64/Kconfig |3 +++ arch/x86/Kconfig |3 +++ include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 8 files changed, 14 insertions(+), 7 deletions(-) --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -80,6 +80,9 @@ config GENERIC_TIME_VSYSCALL bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config DMI bool default y --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool PPC64 + config IRQ_PER_CPU bool default y --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -66,6 +66,9 @@ config AUDIT_ARCH bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config ARCH_NO_VIRT_TO_BUS def_bool y --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -100,6 +100,9 @@ config GENERIC_TIME_VSYSCALL bool default X86_64 +config ARCH_SETS_UP_PER_CPU_AREA + def_bool X86_64 + config ARCH_SUPPORTS_OPROFILE bool default y --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -3,7 +3,6 @@ #include #include -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; --- a/include/asm-s390/percpu.h +++ b/include/asm-s390/percpu.h @@ -4,8 +4,6 @@ #include #include -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the cpu's lowcore memory. --- a/include/asm-x86/percpu_32.h +++ b/include/asm-x86/percpu_32.h @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; --- a/init/main.c +++ b/init/main.c @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) -- -- 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/
[PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
V1-V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Mike Travis [EMAIL PROTECTED] --- arch/ia64/Kconfig|3 +++ arch/powerpc/Kconfig |3 +++ arch/sparc64/Kconfig |3 +++ arch/x86/Kconfig |3 +++ include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 8 files changed, 14 insertions(+), 7 deletions(-) --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -80,6 +80,9 @@ config GENERIC_TIME_VSYSCALL bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config DMI bool default y --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool PPC64 + config IRQ_PER_CPU bool default y --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -66,6 +66,9 @@ config AUDIT_ARCH bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config ARCH_NO_VIRT_TO_BUS def_bool y --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -100,6 +100,9 @@ config GENERIC_TIME_VSYSCALL bool default X86_64 +config ARCH_SETS_UP_PER_CPU_AREA + def_bool X86_64 + config ARCH_SUPPORTS_OPROFILE bool default y --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -3,7 +3,6 @@ #include linux/compiler.h #include linux/threads.h -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; --- a/include/asm-s390/percpu.h +++ b/include/asm-s390/percpu.h @@ -4,8 +4,6 @@ #include linux/compiler.h #include asm/lowcore.h -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the cpu's lowcore memory. --- a/include/asm-x86/percpu_32.h +++ b/include/asm-x86/percpu_32.h @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; --- a/init/main.c +++ b/init/main.c @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) -- -- 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/
[PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
V1->V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell <[EMAIL PROTECTED]> Cc: Andi Kleen <[EMAIL PROTECTED]> Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> Signed-off-by: Mike Travis <[EMAIL PROTECTED]> --- arch/ia64/Kconfig|3 +++ arch/powerpc/Kconfig |3 +++ arch/sparc64/Kconfig |3 +++ arch/x86/Kconfig |3 +++ include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 8 files changed, 14 insertions(+), 7 deletions(-) --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -82,6 +82,9 @@ config GENERIC_TIME_VSYSCALL bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config DMI bool default y --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool PPC64 + config IRQ_PER_CPU bool default y --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -68,6 +68,9 @@ config AUDIT_ARCH bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config ARCH_NO_VIRT_TO_BUS def_bool y --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -106,6 +106,9 @@ config GENERIC_TIME_VSYSCALL bool default X86_64 +config ARCH_SETS_UP_PER_CPU_AREA + def_bool X86_64 + config ARCH_SUPPORTS_OPROFILE bool default y --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -3,7 +3,6 @@ #include #include -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; --- a/include/asm-s390/percpu.h +++ b/include/asm-s390/percpu.h @@ -4,8 +4,6 @@ #include #include -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the cpu's lowcore memory. --- a/include/asm-x86/percpu_32.h +++ b/include/asm-x86/percpu_32.h @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; --- a/init/main.c +++ b/init/main.c @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) -- -- 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/
Re: [PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
From: [EMAIL PROTECTED] Date: Thu, 27 Dec 2007 16:10:47 -0800 > V1->V2: > - Use def_bool as suggested by Randy. > > The use of the __GENERIC_PERCPU is a bit problematic since arches > may want to run their own percpu setup while using the generic > percpu definitions. Replace it through a kconfig variable. > > > > Cc: Rusty Russell <[EMAIL PROTECTED]> > Cc: Andi Kleen <[EMAIL PROTECTED]> > Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> > Signed-off-by: Mike Travis <[EMAIL PROTECTED]> Acked-by: David S. Miller <[EMAIL PROTECTED]> -- 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/
[PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
V1->V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell <[EMAIL PROTECTED]> Cc: Andi Kleen <[EMAIL PROTECTED]> Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> Signed-off-by: Mike Travis <[EMAIL PROTECTED]> --- arch/ia64/Kconfig|3 +++ arch/powerpc/Kconfig |3 +++ arch/sparc64/Kconfig |3 +++ arch/x86/Kconfig |3 +++ include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 8 files changed, 14 insertions(+), 7 deletions(-) --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -82,6 +82,9 @@ config GENERIC_TIME_VSYSCALL bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config DMI bool default y --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool PPC64 + config IRQ_PER_CPU bool default y --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -68,6 +68,9 @@ config AUDIT_ARCH bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config ARCH_NO_VIRT_TO_BUS def_bool y --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -106,6 +106,9 @@ config GENERIC_TIME_VSYSCALL bool default X86_64 +config ARCH_SETS_UP_PER_CPU_AREA + def_bool X86_64 + config ARCH_SUPPORTS_OPROFILE bool default y --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -3,7 +3,6 @@ #include #include -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; --- a/include/asm-s390/percpu.h +++ b/include/asm-s390/percpu.h @@ -4,8 +4,6 @@ #include #include -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the cpu's lowcore memory. --- a/include/asm-x86/percpu_32.h +++ b/include/asm-x86/percpu_32.h @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; --- a/init/main.c +++ b/init/main.c @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) -- -- 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/
[PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
V1-V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Mike Travis [EMAIL PROTECTED] --- arch/ia64/Kconfig|3 +++ arch/powerpc/Kconfig |3 +++ arch/sparc64/Kconfig |3 +++ arch/x86/Kconfig |3 +++ include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 8 files changed, 14 insertions(+), 7 deletions(-) --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -82,6 +82,9 @@ config GENERIC_TIME_VSYSCALL bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config DMI bool default y --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool PPC64 + config IRQ_PER_CPU bool default y --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -68,6 +68,9 @@ config AUDIT_ARCH bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config ARCH_NO_VIRT_TO_BUS def_bool y --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -106,6 +106,9 @@ config GENERIC_TIME_VSYSCALL bool default X86_64 +config ARCH_SETS_UP_PER_CPU_AREA + def_bool X86_64 + config ARCH_SUPPORTS_OPROFILE bool default y --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -3,7 +3,6 @@ #include linux/compiler.h #include linux/threads.h -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; --- a/include/asm-s390/percpu.h +++ b/include/asm-s390/percpu.h @@ -4,8 +4,6 @@ #include linux/compiler.h #include asm/lowcore.h -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the cpu's lowcore memory. --- a/include/asm-x86/percpu_32.h +++ b/include/asm-x86/percpu_32.h @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; --- a/init/main.c +++ b/init/main.c @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) -- -- 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/
Re: [PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
From: [EMAIL PROTECTED] Date: Thu, 27 Dec 2007 16:10:47 -0800 V1-V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Mike Travis [EMAIL PROTECTED] Acked-by: David S. Miller [EMAIL PROTECTED] -- 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/
[PATCH 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
V1-V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Signed-off-by: Christoph Lameter [EMAIL PROTECTED] Signed-off-by: Mike Travis [EMAIL PROTECTED] --- arch/ia64/Kconfig|3 +++ arch/powerpc/Kconfig |3 +++ arch/sparc64/Kconfig |3 +++ arch/x86/Kconfig |3 +++ include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 8 files changed, 14 insertions(+), 7 deletions(-) --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -82,6 +82,9 @@ config GENERIC_TIME_VSYSCALL bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config DMI bool default y --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool PPC64 + config IRQ_PER_CPU bool default y --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -68,6 +68,9 @@ config AUDIT_ARCH bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config ARCH_NO_VIRT_TO_BUS def_bool y --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -106,6 +106,9 @@ config GENERIC_TIME_VSYSCALL bool default X86_64 +config ARCH_SETS_UP_PER_CPU_AREA + def_bool X86_64 + config ARCH_SUPPORTS_OPROFILE bool default y --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -3,7 +3,6 @@ #include linux/compiler.h #include linux/threads.h -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; --- a/include/asm-s390/percpu.h +++ b/include/asm-s390/percpu.h @@ -4,8 +4,6 @@ #include linux/compiler.h #include asm/lowcore.h -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the cpu's lowcore memory. --- a/include/asm-x86/percpu_32.h +++ b/include/asm-x86/percpu_32.h @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; --- a/init/main.c +++ b/init/main.c @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) -- -- 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/
[patch 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
V1->V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell <[EMAIL PROTECTED]> Cc: Andi Kleen <[EMAIL PROTECTED]> Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]> --- arch/ia64/Kconfig|3 +++ arch/powerpc/Kconfig |3 +++ arch/sparc64/Kconfig |3 +++ arch/x86/Kconfig |5 ++--- include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 8 files changed, 13 insertions(+), 10 deletions(-) Index: linux-2.6.24-rc3-mm2/init/main.c === --- linux-2.6.24-rc3-mm2.orig/init/main.c 2007-11-28 12:51:28.288463092 -0800 +++ linux-2.6.24-rc3-mm2/init/main.c2007-11-28 12:51:38.636214129 -0800 @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) Index: linux-2.6.24-rc3-mm2/arch/ia64/Kconfig === --- linux-2.6.24-rc3-mm2.orig/arch/ia64/Kconfig 2007-11-28 12:51:28.300463519 -0800 +++ linux-2.6.24-rc3-mm2/arch/ia64/Kconfig 2007-11-28 12:51:38.640213057 -0800 @@ -75,6 +75,9 @@ config GENERIC_TIME_VSYSCALL bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config DMI bool default y Index: linux-2.6.24-rc3-mm2/arch/powerpc/Kconfig === --- linux-2.6.24-rc3-mm2.orig/arch/powerpc/Kconfig 2007-11-28 12:51:28.312463458 -0800 +++ linux-2.6.24-rc3-mm2/arch/powerpc/Kconfig 2007-11-28 12:51:38.640213057 -0800 @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool PPC64 + config IRQ_PER_CPU bool default y Index: linux-2.6.24-rc3-mm2/arch/sparc64/Kconfig === --- linux-2.6.24-rc3-mm2.orig/arch/sparc64/Kconfig 2007-11-28 12:51:28.391963652 -0800 +++ linux-2.6.24-rc3-mm2/arch/sparc64/Kconfig 2007-11-28 12:51:38.640213057 -0800 @@ -66,6 +66,9 @@ config AUDIT_ARCH bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config ARCH_NO_VIRT_TO_BUS def_bool y Index: linux-2.6.24-rc3-mm2/arch/x86/Kconfig === --- linux-2.6.24-rc3-mm2.orig/arch/x86/Kconfig 2007-11-28 12:51:28.407962976 -0800 +++ linux-2.6.24-rc3-mm2/arch/x86/Kconfig 2007-11-28 12:51:38.782051096 -0800 @@ -120,9 +120,8 @@ config GENERIC_TIME_VSYSCALL bool default X86_64 - - - +config ARCH_SETS_UP_PER_CPU_AREA + def_bool X86_64 config ZONE_DMA32 bool Index: linux-2.6.24-rc3-mm2/include/asm-generic/percpu.h === --- linux-2.6.24-rc3-mm2.orig/include/asm-generic/percpu.h 2007-11-28 12:51:28.419963226 -0800 +++ linux-2.6.24-rc3-mm2/include/asm-generic/percpu.h 2007-11-28 12:51:38.782051096 -0800 @@ -3,7 +3,6 @@ #include #include -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; Index: linux-2.6.24-rc3-mm2/include/asm-x86/percpu_32.h === --- linux-2.6.24-rc3-mm2.orig/include/asm-x86/percpu_32.h 2007-11-28 12:51:28.431963118 -0800 +++ linux-2.6.24-rc3-mm2/include/asm-x86/percpu_32.h2007-11-28 12:51:38.782051096 -0800 @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; Index: linux-2.6.24-rc3-mm2/include/asm-s390/percpu.h === --- linux-2.6.24-rc3-mm2.orig/include/asm-s390/percpu.h 2007-11-28 12:51:28.443963942 -0800 +++ linux-2.6.24-rc3-mm2/include/asm-s390/percpu.h 2007-11-28 12:51:38.784139633 -0800 @@ -4,8 +4,6 @@ #include #include -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the cpu's lowcore memory. -- - To unsubscribe from this
[patch 01/10] percpu: Use a kconfig variable to signal arch specific percpu setup
V1-V2: - Use def_bool as suggested by Randy. The use of the __GENERIC_PERCPU is a bit problematic since arches may want to run their own percpu setup while using the generic percpu definitions. Replace it through a kconfig variable. Cc: Rusty Russell [EMAIL PROTECTED] Cc: Andi Kleen [EMAIL PROTECTED] Signed-off-by: Christoph Lameter [EMAIL PROTECTED] --- arch/ia64/Kconfig|3 +++ arch/powerpc/Kconfig |3 +++ arch/sparc64/Kconfig |3 +++ arch/x86/Kconfig |5 ++--- include/asm-generic/percpu.h |1 - include/asm-s390/percpu.h|2 -- include/asm-x86/percpu_32.h |2 -- init/main.c |4 ++-- 8 files changed, 13 insertions(+), 10 deletions(-) Index: linux-2.6.24-rc3-mm2/init/main.c === --- linux-2.6.24-rc3-mm2.orig/init/main.c 2007-11-28 12:51:28.288463092 -0800 +++ linux-2.6.24-rc3-mm2/init/main.c2007-11-28 12:51:38.636214129 -0800 @@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsi #else -#ifdef __GENERIC_PER_CPU +#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; EXPORT_SYMBOL(__per_cpu_offset); @@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(v ptr += size; } } -#endif /* !__GENERIC_PER_CPU */ +#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */ /* Called by boot processor to activate the rest. */ static void __init smp_init(void) Index: linux-2.6.24-rc3-mm2/arch/ia64/Kconfig === --- linux-2.6.24-rc3-mm2.orig/arch/ia64/Kconfig 2007-11-28 12:51:28.300463519 -0800 +++ linux-2.6.24-rc3-mm2/arch/ia64/Kconfig 2007-11-28 12:51:38.640213057 -0800 @@ -75,6 +75,9 @@ config GENERIC_TIME_VSYSCALL bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config DMI bool default y Index: linux-2.6.24-rc3-mm2/arch/powerpc/Kconfig === --- linux-2.6.24-rc3-mm2.orig/arch/powerpc/Kconfig 2007-11-28 12:51:28.312463458 -0800 +++ linux-2.6.24-rc3-mm2/arch/powerpc/Kconfig 2007-11-28 12:51:38.640213057 -0800 @@ -42,6 +42,9 @@ config GENERIC_HARDIRQS bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool PPC64 + config IRQ_PER_CPU bool default y Index: linux-2.6.24-rc3-mm2/arch/sparc64/Kconfig === --- linux-2.6.24-rc3-mm2.orig/arch/sparc64/Kconfig 2007-11-28 12:51:28.391963652 -0800 +++ linux-2.6.24-rc3-mm2/arch/sparc64/Kconfig 2007-11-28 12:51:38.640213057 -0800 @@ -66,6 +66,9 @@ config AUDIT_ARCH bool default y +config ARCH_SETS_UP_PER_CPU_AREA + def_bool y + config ARCH_NO_VIRT_TO_BUS def_bool y Index: linux-2.6.24-rc3-mm2/arch/x86/Kconfig === --- linux-2.6.24-rc3-mm2.orig/arch/x86/Kconfig 2007-11-28 12:51:28.407962976 -0800 +++ linux-2.6.24-rc3-mm2/arch/x86/Kconfig 2007-11-28 12:51:38.782051096 -0800 @@ -120,9 +120,8 @@ config GENERIC_TIME_VSYSCALL bool default X86_64 - - - +config ARCH_SETS_UP_PER_CPU_AREA + def_bool X86_64 config ZONE_DMA32 bool Index: linux-2.6.24-rc3-mm2/include/asm-generic/percpu.h === --- linux-2.6.24-rc3-mm2.orig/include/asm-generic/percpu.h 2007-11-28 12:51:28.419963226 -0800 +++ linux-2.6.24-rc3-mm2/include/asm-generic/percpu.h 2007-11-28 12:51:38.782051096 -0800 @@ -3,7 +3,6 @@ #include linux/compiler.h #include linux/threads.h -#define __GENERIC_PER_CPU #ifdef CONFIG_SMP extern unsigned long __per_cpu_offset[NR_CPUS]; Index: linux-2.6.24-rc3-mm2/include/asm-x86/percpu_32.h === --- linux-2.6.24-rc3-mm2.orig/include/asm-x86/percpu_32.h 2007-11-28 12:51:28.431963118 -0800 +++ linux-2.6.24-rc3-mm2/include/asm-x86/percpu_32.h2007-11-28 12:51:38.782051096 -0800 @@ -41,8 +41,6 @@ *PER_CPU(cpu_gdt_descr, %ebx) */ #ifdef CONFIG_SMP -/* Same as generic implementation except for optimized local access. */ -#define __GENERIC_PER_CPU /* This is used for other cpus to find our section. */ extern unsigned long __per_cpu_offset[]; Index: linux-2.6.24-rc3-mm2/include/asm-s390/percpu.h === --- linux-2.6.24-rc3-mm2.orig/include/asm-s390/percpu.h 2007-11-28 12:51:28.443963942 -0800 +++ linux-2.6.24-rc3-mm2/include/asm-s390/percpu.h 2007-11-28 12:51:38.784139633 -0800 @@ -4,8 +4,6 @@ #include linux/compiler.h #include asm/lowcore.h -#define __GENERIC_PER_CPU - /* * s390 uses its own implementation for per cpu data, the offset of * the cpu local data area is cached in the