![]() | |||||||||||
Messages in this thread |
On Monday 12 June 2006 21:15, Christoph Lameter wrote: > On Mon, 12 Jun 2006, Andi Kleen wrote: > > > > I thought you had some funky segment registers on i386 and x86_64. Cant > > > they be switched on context switch? If an inc/dec could work relative to > > > those then you would not need a virtual mapping. > > > > The segment register needs an offset. So you need the linker to generate > > the offset from the base of the per cpu segment somehow. At compile time the > > address is not known so it cannot be done then. > > Define something like a big struct and use offsetof? That is how the basic architecture specific PDA works (asm/pda.h) But i don't see a good way to define a big struct for asm/percpu.h Preprocessing would be too slow and getting all people to put their per CPU variables into a single header also doesn't seem like a good idea. > > So the compiler is not able to generate an offset to the beginning of a > data segment? It's an assembler/linker issue. -Andi (who is really surprised people make such a big deal out of two instructions) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||
| Last update: 2006-06-13 05:54 [from the cache] ©2003-2008 | |||||||||||