Re: x86/non-x86: percpu, node ids, apic ids x86.git fixup

Ingo Molnar
2008-01-30T19:46:46Z

* Luck, Tony <tony.luck@intel.com> wrote:

> > This is only defined for !__ASSEMBLY__
>
> Some place in there. The CONFIG_SMP=n path in ia64 makes quite
> radical changes ... rather than putting all the per-cpu stuff into the
> top 64K of address space and providing a per-cpu TLB mapping for that
> range to a different physical address ... it just makes all the
> per-cpu stuff link as ordinary variables in .data. The error messages
> indicate that some of the new code is unaware of this.

ah, that was the vital clue. The patch below makes the small memory
model only defined on SMP, and makes the config build/link fine here.
Does this build and boot on your box?

Ingo

------------>
Subject: ia64: build fix #3
From: Ingo Molnar <mingo@elte.hu>

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
include/asm-ia64/percpu.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux-x86.q/include/asm-ia64/percpu.h
===================================================================
--- linux-x86.q.orig/include/asm-ia64/percpu.h
+++ linux-x86.q/include/asm-ia64/percpu.h
@@ -15,12 +15,12 @@

#include <linux/threads.h>

+#ifdef CONFIG_SMP
+
#ifdef HAVE_MODEL_SMALL_ATTRIBUTE
# define PER_CPU_ATTRIBUTES __attribute__((__model__ (__small__)))
#endif

-#ifdef CONFIG_SMP
-
#define __my_cpu_offset __ia64_per_cpu_var(local_per_cpu_offset)

extern void *per_cpu_init(void);