[RFC] Enable use of UserLocal Register (ULRI) if detected (patches)

Robert Watson rwatson at FreeBSD.org
Wed Feb 19 18:02:00 UTC 2014


On Wed, 19 Feb 2014, Warner Losh wrote:

>> For more information about the ULRI see "MIPS Architecture for Programmers 
>> Volume III"  section 9.9 UserLocal Register (CP0 Register 4, Select 2).
>
> Thanks for doing this!

I would note, BTW, that the current use of TLS in malloc()/free() and today's 
MIPS exception handler for TLS implementation do introduce a very measurable 
overhead.  I'm left wondering if there is something we can do for unthreaded 
processes to avoid taking kernel traps on every memory allocation and free for 
MIPSes without ULRI.  (Note that that problem is present before Stacey's 
patch: the reason we added ULRI support is that our hardware does support 
ULRI, and we can therefore avoid that nasty overhead ...)  I understand 
there's work on a new MIPS ABI that specifies a TLS register not requiring a 
trap to read on non-ULRI hardware, but I'm not sure how far that is from being 
available.  Certainly it will require compiler/OS/etc work before it becomes 
useful to us.

Robert


More information about the freebsd-mips mailing list