Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Mar 2004 22:21:00 +0100
From:      Doug Rabson <dfr@nlsystems.com>
To:        Daniel Eischen <eischen@vigrid.com>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: Thread Local Storage
Message-ID:  <200403292221.00286.dfr@nlsystems.com>
In-Reply-To: <Pine.GSO.4.10.10403291433500.17631-100000@pcnet5.pcnet.com>
References:  <Pine.GSO.4.10.10403291433500.17631-100000@pcnet5.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 29 March 2004 20:36, Daniel Eischen wrote:
> 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.

Surely the GNU TLS ABI is preferable? It generates much smaller code and 
needs many fewer relocations.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200403292221.00286.dfr>