From owner-freebsd-threads@FreeBSD.ORG Thu Jun 19 16:22:36 2003 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B616737B401 for ; Thu, 19 Jun 2003 16:22:35 -0700 (PDT) Received: from sccrmhc13.attbi.com (sccrmhc13.comcast.net [204.127.202.64]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0CAEB43F75 for ; Thu, 19 Jun 2003 16:22:35 -0700 (PDT) (envelope-from julian@elischer.org) Received: from interjet.elischer.org ([12.233.125.100]) by attbi.com (sccrmhc13) with ESMTP id <2003061923223301600acf38e>; Thu, 19 Jun 2003 23:22:34 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id QAA50600; Thu, 19 Jun 2003 16:22:33 -0700 (PDT) Date: Thu, 19 Jun 2003 16:22:33 -0700 (PDT) From: Julian Elischer To: Daniel Eischen In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: threads@freebsd.org cc: Marcel Moolenaar Subject: Re: Implementing TLS: step 1 X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jun 2003 23:22:36 -0000 On Thu, 19 Jun 2003, Daniel Eischen wrote: > On Thu, 19 Jun 2003, Julian Elischer wrote: > > > > 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. > > Yes, and we can have thousands and thousands of threads. > > > 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. > > It is not just that. It is the cost of an ldt allocation for > each thread. In libkse, we only need as many LDTs as there > are KSEs. Allocating an ldt per-thread increases thread > startup and teardown. that's sort-of-what I was saying.. I think we are ok anyhow.. the spec for i386 is general enough so that we can use it as it is without problem. > > -- > Dan Eischen > >