Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/kern
On Jun 3, 2011, at 12:45 AM, Martin Husemann wrote:
> On Thu, Jun 02, 2011 at 09:21:11PM +0100, David Laight wrote:
>> Passing 'l' is a register rename (or copy) so is almost zero cost.
>>
>> Recovering curlwp may involve a function call, and is, at best, a real
>> memory access of global data (possibly via an asm statement) that will
>> be slow and multiple accesses might need caching in a local anyway.
>
> I wonder on what archs we would be able to do the MIPS curlwp optimization
> (place curlwp in a reserved register).
>
> Sparc64 and sparc will likely follow this in the near future (needs some audit
> and will do some benchmarks first; it closely resembles TLS for userland).
>
> What's the cost on other archs and what optimizations are possible?
I thought about for PPC. Could even use the same register (%r2) for it.
curcpu is already fairly cheap to get (mfsprg0). on 85xx, I also store curlwp
in sprg2. Haven't modified the kernel to fetch it from there yet. Regardless,
on
mpc85xx (booke) I could easily add a mfsprg2 %r2 in the exception prologues.
Putting curlwp in %r2 on context switch would almost be free.
Neither arm or vax (or probably m68k) have enough registers to make the
dedicated register method practical.
Home |
Main Index |
Thread Index |
Old Index