Implementing TLS: step 1

Julian Elischer julian at elischer.org
Thu Jun 19 16:12:53 PDT 2003



BTW Marcel, I think that we can get from where we are now with kse to
what we need by just a little massaging of what points to what.
it is possible that the register %gs could be pointed to the thread
structure directly and we could derive the KSE from that. it will just
make the context switches a fraction more expensive if we need to
change the segment register..

The big cost is that a processin x86 can only have a limited number of
segments set up in teh Local descriptor table (LDT).
I forget the actual number but i vaguely remember that it is 16383 or
8191 or something.. A process could theoretically want to have
more than that numbe rof threads.. By pointing to the KSE we limit
ourselves to having to set up onl a small number of LDT entries
which is a big saving.

On ia64 we don;t need to use descriptors so there is not that limit so 
in effect we could point directly to the thread descriptor and let THAT
point to teh VCPU mailbox in question. it's just an extra write or two
at context switch time. I think we'll be just fine.





More information about the freebsd-threads mailing list