From owner-freebsd-threads@FreeBSD.ORG Fri Jul 18 12:52:05 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 AF47037B401; Fri, 18 Jul 2003 12:52:05 -0700 (PDT) Received: from rwcrmhc13.comcast.net (rwcrmhc13.comcast.net [204.127.198.39]) by mx1.FreeBSD.org (Postfix) with ESMTP id F0F8143F85; Fri, 18 Jul 2003 12:52:03 -0700 (PDT) (envelope-from julian@elischer.org) Received: from interjet.elischer.org ([12.233.125.100]) by attbi.com (rwcrmhc13) with ESMTP id <2003071819520301500bjqt3e>; Fri, 18 Jul 2003 19:52:03 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id MAA14802; Fri, 18 Jul 2003 12:52:02 -0700 (PDT) Date: Fri, 18 Jul 2003 12:52:00 -0700 (PDT) From: Julian Elischer To: deischen@freebsd.org In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: threads@freebsd.org Subject: Re: Rearranging kse mailbox 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, 18 Jul 2003 19:52:06 -0000 for TLS we need to ensure that the first few (actually, 1 but a couple more can't hurt) entry in the KSE mailbox is available as a pointer to the TLS. (on 386 at least). Marcel probablyt has more to say on the topic. Also, in the latest version I assume there is still a KSE mailbox for 1:1 threads, as it'll be needed for TLS. (is there still a pair of mailboxen for bound, NON-SA threads?) (even if not used..?) On Fri, 18 Jul 2003, Daniel Eischen wrote: > Before we switch from libkse to libpthread, let's take a look > at the mailboxes and see if we want to reorder them for better > alignment. > > I took a cut at it. I moved the context from the beginning > of the thread mailbox to the end since it was the largest > field and most likely to change (for non-i386 archs). > > struct kse_thr_mailbox { > struct kse_thr_mailbox *tm_next; /* Next thread in list */ > void *tm_udata; /* For use by the UTS */ > uint32_t tm_flags; /* Thread flags */ > uint32_t tm_uticks; > uint32_t tm_sticks; > uint32_t tm_spare2[9]; > siginfo_t tm_syncsig; > ucontext_t tm_context; /* User and machine context */ > }; > > struct kse_mailbox { > uint32_t km_version; /* Mailbox version */ > uint32_t km_flags; /* KSE flags */ > struct kse_thr_mailbox *km_curthread; /* Currently running thread */ > struct kse_thr_mailbox *km_completed; /* Threads back from kernel */ > sigset_t km_sigscaught; /* Caught signals */ > kse_func_t *km_func; /* UTS function */ > stack_t km_stack; /* UTS context */ > void *km_udata; /* For use by the UTS */ > struct timespec km_timeofday; /* Time of day */ > int32_t km_quantum; /* Upcall quantum in msecs */ > uint32_t km_spare[8]; > }; > > Comments, suggestions? > > -- > Dan Eischen > > > _______________________________________________ > freebsd-threads@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-threads > To unsubscribe, send any mail to "freebsd-threads-unsubscribe@freebsd.org" >