tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

TLS status



Hi all,
I was asked to give an update to the last TLS status report.

The following platforms have fully tested TLS support:
Alpha
AMD64
i386
HPPA
MIPS
PowerPC
SH3
SPARC
SPARC64

Remaining platforms:
ARM
M68K
VAX

ARM: ld.elf_so parts are committed and work. This is not enabled due to
some issues in the kernel emulation for the thread register access on
older ARM cores. I think Matt is looking at this.

M68K: I'm trying to get the ld.elf_so part tested now. Further work is
needed in the kernel to provide the thread pointer "register". Since
M68k is a strictly non-SMP platform, kernel will either map a fixed page
into address space or update a registered address on context switch /
return to userland. Help from platform maintainers would be appreciated.

VAX: Matt added glue for __lwp_getprivate_fast. I don't know how much
testing this got. VAX is a bit special in that it lacks space in
mcontext_t for l_private. For the purpose of TLS and libpthread, it
should be good enough to use a trampoline calling _lwp_setprivate as
first action in the new thread. This leaves a small race with signal
handlers, but would allow us to move on. The other issue is that VAX has
no defined TLS ABI. Mandating it to provide a Type I TLS ABI would allow
libpthread to benefit from __lwp_getprivate_fast to allow us the removal
of the stackid hacks. Adding at least basic TLS relocations shouldn't be
hard either.

Joerg


Home | Main Index | Thread Index | Old Index