linux-mips
[Top] [All Lists]

Re: TLS register for NPTL

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: TLS register for NPTL
From: Carl van Schaik <carl@ok-labs.com>
Date: Tue, 21 Aug 2007 11:53:49 +1000
Cc: Thiemo Seufer <ths@networkno.de>, linux-mips@linux-mips.org
In-reply-to: <20070820145449.GA11766@linux-mips.org>
Organization: Open Kernel Labs Inc.
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <46C93BB5.9050809@ok-labs.com> <20070820080627.GF4479@networkno.de> <20070820145449.GA11766@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.6 (Windows/20070728)
Ralf Baechle wrote:
> On Mon, Aug 20, 2007 at 09:06:27AM +0100, Thiemo Seufer wrote:
>
>   
>>> It seems the rdhwr emulation is used/proposed for accessing the thread
>>> word in NPTL.
>>> I've been reading some of the posts from 2005 about this choice of this
>>> and what I have missed is anyone talking about using the "k0" register
>>> for TLS. It seems logical that the kernel could always restore k0 on
>>> returning to user-land and having k1 only for the last part of returning
>>> to user is sufficient. Any reason why this was not looked at?
>>>       
>> The TLB handlers need k0/k1 as well and have no good place to save/restore
>> a register.
>>     
>
> It can be done but would require several extra instructions in the most
> performance sensitive parts of the OS.
>
> Aside, latest MIPS processors support a hardware implementation of rdhwr $29,
> so there is no more emulation overhead for this instruction at full binary
> compatibility.
>   
Ok, I agree that this is probably the best way to go. In the L4
microkernel we have for a long time used k0 (sony did this as well?),
but that was before any rdhwr existed, hence my questions. It should be
easy to change L4 to use rdhwr, or both for an intermediate period of
time which allows us to virtualize Linux mips applications with NPTL.

thanks,
Carl

<Prev in Thread] Current Thread [Next in Thread>