From owner-freebsd-threads@FreeBSD.ORG Sat Apr 3 10:22:51 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 B86BB16A4CE for ; Sat, 3 Apr 2004 10:22:51 -0800 (PST) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 728AF43D5C for ; Sat, 3 Apr 2004 10:22:51 -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 i33IMitf000290; Sat, 3 Apr 2004 13:22:44 -0500 (EST) Date: Sat, 3 Apr 2004 13:22:44 -0500 (EST) From: Daniel Eischen X-Sender: eischen@pcnet5.pcnet.com To: Doug Rabson In-Reply-To: <200404031823.54815.dfr@nlsystems.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: threads@freebsd.org cc: Julian Elischer Subject: Re: PERFORCE change 50188 for review 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: Sat, 03 Apr 2004 18:22:51 -0000 On Sat, 3 Apr 2004, Doug Rabson wrote: > On Friday 02 April 2004 21:22, Daniel Eischen wrote: > > On Fri, 2 Apr 2004, Julian Elischer wrote: > > > > > > The SUN API allows the destination of the %gs:0 to be changes at > > > runtime by the user this allowing the UTS to switch threads "on the > > > fly" without going back to the kernel. > > > > Yes, please, I don't see how the one extra indirection is > > really going to affect much. This is where we intended to > > go months ago (and years ago WRT KSE in general), and > > everything has been designed around it. > > I was just wandering around the internet looking at the scenery and I > ended up here: > http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86-64-Options.html. Neat. > This document describes a new options (which is not supported by the > compiler in current right now), -mno-tls-direct-seg-refs. This looks > like it will do everything we need for both i386 and amd64, i.e. > instead of code like: > > movl %gs:x@ntpoff, %eax > > it should generate: > > movl %gs:0, %eax > movl x@ntpoff(%eax), %eax That's what I thought the SUN ABI was supposed to do, no? Perhaps I should go back and read the TLS spec... > Although I'm still not quite convinced that we can't do the first > version with essentially zero cost for i386 at least. I think it might get messy trying to manage LDTs. Extra locking will be needed when you need to borrow them from other threads, and you need to make sure those other threads aren't running and aren't scope system. You might as well make a system call to continue the thread and let the kernel do all the work. -- Dan Eischen