Re: Draft TLS/NPTL ABI for m68k and ColdFire, version 0.2
On Sun, Dec 02, 2007 at 11:43:18PM +0000, Joseph S. Myers wrote:
> On Sun, 2 Dec 2007, Brad Boyer wrote:
> > I also tried to look for the ARM magic page implementation, but I
> > couldn't find it. Any pointers to where I should be looking? I've
> > never done any work on ARM other than looking at some of the chip
> > documentation and some decidedly non-Linux implementations.
> arch/arm/kernel/entry-armv.S, starting
I guess you weren't kidding about the "magic page" name. That's a
hideous hack, although I guess some of the older ARM systems are
pretty limited. I can definitely see why you don't want to do
something like that for any other architecture.
One thing noteworthy is the whole thing of storing the thread
pointer in a particular place in the page for quick read-only
access. There also appears to be a system call to set the current
thread pointer for a task. I noticed that the actual value stored
in the magic page area is actually managed as part of the main
context switch code. The value is actually stored into the page
during the architecture specific task switch code, which does
save having different memory per thread. However, it would be
much more difficult to do that sort of thing in a page tied to
a vDSO. I'll definitely take another look at your design keeping
this in mind.