Rearranging kse mailbox

Daniel Eischen eischen at vigrid.com
Fri Jul 18 12:46:58 PDT 2003


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




More information about the freebsd-threads mailing list