Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jul 2003 12:52:00 -0700 (PDT)
From:      Julian Elischer <julian@elischer.org>
To:        deischen@freebsd.org
Cc:        threads@freebsd.org
Subject:   Re: Rearranging kse mailbox
Message-ID:  <Pine.BSF.4.21.0307181248390.14696-100000@InterJet.elischer.org>
In-Reply-To: <Pine.GSO.4.10.10307181538360.18280-100000@pcnet5.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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"
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0307181248390.14696-100000>