Rearranging kse mailbox

Julian Elischer julian at elischer.org
Fri Jul 18 15:08:50 PDT 2003



On Fri, 18 Jul 2003, Marcel Moolenaar wrote:

> On Fri, Jul 18, 2003 at 02:04:08PM -0700, Julian Elischer wrote:
> > 
> > 
> > On Fri, 18 Jul 2003, Marcel Moolenaar wrote:
> > 
> > > On Fri, Jul 18, 2003 at 12:52:00PM -0700, Julian Elischer wrote:
> > > > for TLS we need to ensure that the first few (actually, 1 but a couple
> > > > more can't hurt) entry in the KSE mailbox is available as a pointer to
> > > > the TLS. (on 386 at least). Marcel probablyt has more to say on the
> > > > topic.
> > > 
> > > Good point. I forgot about TLS. I'll bump it up on my todo list.
> > 
> > I don't have teh TLS spec with me here..
> > I don't know if other architectures would make other requirements..
> 
> I'll see if I can write something up this weekend.

I found a copy :-)

the ia64 requires that the thread pointer points to 
aome location that is 16 bytes long, the first 8 bytes
of which is a pointer to the TLS Dynamic thread vector, and the 2nd 8
bytes is application specific, but in practice, must be a pointer to
the Thread's or KSE's mailbox (I guess KSE to be similar to the others.)

ia32 requires just that the thread control info pointed to by %gs
SOMEWHERE contains a pointer to the dtv (where SOMEWHERE is a known
offset). (In our case the offset would be 0)

This means that for the UTS to find the active thread under ia64
takes an extra level of indirection. (node neither of these
affect upcalls as teh UTS upcall target function has the mailbox as an
argument and can access it independently of %gs or the tp.

Am I right that "variant 2" (as seen in the ia32 case)
applies to allarchitectures other than ia64?

julian



> 
> -- 
>  Marcel Moolenaar	  USPA: A-39004		 marcel at xcllnt.net
> 



More information about the freebsd-threads mailing list