From owner-freebsd-threads@FreeBSD.ORG Mon Mar 29 11:36:33 2004 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 E494B16A4CE for ; Mon, 29 Mar 2004 11:36:33 -0800 (PST) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9AB3643D4C for ; Mon, 29 Mar 2004 11:36:33 -0800 (PST) (envelope-from eischen@vigrid.com) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mail.pcnet.com (8.12.10/8.12.1) with ESMTP id i2TJaWtf018636; Mon, 29 Mar 2004 14:36:33 -0500 (EST) Date: Mon, 29 Mar 2004 14:36:32 -0500 (EST) From: Daniel Eischen X-Sender: eischen@pcnet5.pcnet.com To: Doug Rabson In-Reply-To: <200403292000.13794.dfr@nlsystems.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-threads@freebsd.org Subject: Re: Thread Local Storage 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: Mon, 29 Mar 2004 19:36:34 -0000 On Mon, 29 Mar 2004, Doug Rabson wrote: > I've been spending a bit of time recently familiarising myself with this > TLS stuff and trying out a few things. I've been playing with rtld and > I have a prototype patch which implements enough TLS support to let a > non-threaded program which uses static TLS work. With a tiny bit more > work I can have limited support for dynamic TLS as well (not for > dlopen'ed modules yet though). Is there a p4 tree for this stuff yet? > I'd like to check in what I have sometime. > > I've also been looking at libpthread and I can see some potential > problems with it. Currently libpthread on i386 uses %gs to point at a > struct kcb which seems to be a per-kse structure. This structure > contains a pointer to a per-thread struct tcb and this pointer is > managed by the userland context switch code. Other arches are similar, > e.g. ia64 uses $tp to point at struct kcb. > > The problem with TLS is that the i386 ABI needs %gs to point at the TLS There are 2 different methods allowed for the i386 ABI. We want to use the other method in which there is an additional indirection. The current i386 libpthread stuff adheres to this method. -- Dan Eischen