From owner-freebsd-threads@FreeBSD.ORG Thu Apr 10 23:02:10 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 A4D7437B401; Thu, 10 Apr 2003 23:02:10 -0700 (PDT) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id DEB0743FAF; Thu, 10 Apr 2003 23:02:07 -0700 (PDT) (envelope-from eischen@pcnet1.pcnet.com) Received: from pcnet1.pcnet.com (localhost [127.0.0.1]) by mail.pcnet.com (8.12.8/8.12.1) with ESMTP id h3B627Bg026748; Fri, 11 Apr 2003 02:02:07 -0400 (EDT) Received: from localhost (eischen@localhost)h3B6273f026745; Fri, 11 Apr 2003 02:02:07 -0400 (EDT) Date: Fri, 11 Apr 2003 02:02:06 -0400 (EDT) From: Daniel Eischen To: Peter Wemm In-Reply-To: <20030411053722.782152A7EA@canning.wemm.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: David Xu cc: freebsd-threads@freebsd.org Subject: Re: patch for %gs saving 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: Fri, 11 Apr 2003 06:02:10 -0000 On Thu, 10 Apr 2003, Peter Wemm wrote: > "David Xu" wrote: > > Here is the patch for kernel to save %gs, > > it works well on my machine. > > http://people.freebsd.org/~davidxu/i386_gs.diff > > Daniel, is this the reason in your libpthread > > patch that doesn't use getcontext syscall ? > > To put some background on the issue, there is a reason why we did not > do this. %gs is not used by the kernel, so it does not normally need to > be saved and restored on every trap into the kernel. Setting a segment > register is Really Slow - measured in hundreds of clock cycles. > > So, we normally only touch %gs when we context switch to a different process > that may have a different %gs. Or when one of the context syscalls wants > it changed. We cannot avoid touching %fs because we use it for kernel > private data. But if it wasn't for that, we wouldn't be touching > %fs for regular traps/syscalls/etc either. > > Bruce Evans understands this better than I do, I would suggest not making > this change without talking about it with him first. BTW, it's not really a big deal for the UTS to restore %gs (or probably whatever it ends up being on other archs) before continuing a thread. -- Dan Eischen