Rearranging kse mailbox

Julian Elischer julian at elischer.org
Fri Jul 18 15:16:11 PDT 2003


umm let me clean that up....

On Fri, 18 Jul 2003, Julian Elischer wrote:
[...]
> 
> The ia64 requires that the thread pointer points to 
> some 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.)

Static TLS data follows immediatly following the 16th byte.

> 
> 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). 

Static TLS space preceeds the location pointed to by the tp (the %gs
segment on x86).

> 
> This means that for the UTS to find the active thread under ia64
> takes an extra level of indirection. (Note that neither of these
> affect upcalls as the 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



More information about the freebsd-threads mailing list