Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Jun 2003 15:00:08 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Julian Elischer <julian@elischer.org>
Cc:        threads@FreeBSD.org
Subject:   Re: Implementing TLS: step 1
Message-ID:  <20030619220008.GA1273@dhcp01.pn.xcllnt.net>
In-Reply-To: <Pine.BSF.4.21.0306191323250.41210-100000@InterJet.elischer.org>
References:  <20030619202013.GA833@dhcp01.pn.xcllnt.net> <Pine.BSF.4.21.0306191323250.41210-100000@InterJet.elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 19, 2003 at 02:50:45PM -0700, Julian Elischer wrote:
> 
> Libthr has the advantage that the register used for identifying the
> current thread can be set DIRECTLY at the thread control block, where
> libkse will (probably) require a single indirection. (by which I mean
> that the register will point to the control structure for the Virtual
> CPU that is running (KSE) and that in turn will have a pointer to the
> thread that is currently running.

On ia64, the runtime specification dictates that the TP registers
points to the TLS. How the threads implementation relates this to
the thread control structure (or other control structures) is up to
the implementation. If libkse is ported to ia64, this will have to
be the case as well. Hence the thread pointer will *not* point to
the KSE.  An indirection will be used to point from the TLS to the
KSE.

There is no other way.

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net



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