Thread Local Storage
Daniel Eischen
eischen at vigrid.com
Mon Mar 29 11:36:34 PST 2004
On Mon, 29 Mar 2004, Doug Rabson wrote:
> I've been spending a bit of time recently familiarising myself with this
> TLS stuff and trying out a few things. I've been playing with rtld and
> I have a prototype patch which implements enough TLS support to let a
> non-threaded program which uses static TLS work. With a tiny bit more
> work I can have limited support for dynamic TLS as well (not for
> dlopen'ed modules yet though). Is there a p4 tree for this stuff yet?
> I'd like to check in what I have sometime.
>
> I've also been looking at libpthread and I can see some potential
> problems with it. Currently libpthread on i386 uses %gs to point at a
> struct kcb which seems to be a per-kse structure. This structure
> contains a pointer to a per-thread struct tcb and this pointer is
> managed by the userland context switch code. Other arches are similar,
> e.g. ia64 uses $tp to point at struct kcb.
>
> The problem with TLS is that the i386 ABI needs %gs to point at the TLS
There are 2 different methods allowed for the i386 ABI.
We want to use the other method in which there is an
additional indirection. The current i386 libpthread
stuff adheres to this method.
--
Dan Eischen
More information about the freebsd-threads
mailing list