KSE: fuword/suword bugs on ia64

Marcel Moolenaar marcel at xcllnt.net
Sat Jun 28 10:54:37 PDT 2003


On Sat, Jun 28, 2003 at 12:20:03PM -0400, Daniel Eischen wrote:
> > 
> > I was thinking about using long. fuword/suword is defined in terms
> > of long, so technically it's a bug to have them operate on int. But
> > using long will yield 64-bit fields on 64-bit platforms, and it may
> > just be a waste of space. Although internal alignment and padding
> > may already take up as much space (tm_flags, km_version, km_flags
> > are examples of this).
> 
> The mailboxes are not that big (with the exception of the
> thread mailbox due to ucontext), so a few extra bytes isn't
> going to hurt userland.  Perhaps the copyin/copyout's in
> the kernel is what you're worried about?

Not really. It's just that I like to be able to defend the size
expansion when an alternative exists that does not increase the
size.

> > I'm divided on the issue. I prefer using long for it being the best
> > native type, but don't like the immediate consequence of it being
> > too variable for use in interface types (take for example the 64-bit
> > long on i386 that bde is playing with). With the patch I favored
> > the fixed width property on uint32_t.
> 
> You can use uint32_t for now as a quick fix. Perhaps
> we should restructure the mailboxen a bit as a longer
> term fix.  David just added siginfo to the thread
> mailbox, so that's another MD structure. 

Sounds good. Note that on ia64 ucontext_t has 16-byte alignment.
Having the fields reordered definitely helps the overall density.
BTW: putting tm_context at the end is a good idea.

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel at xcllnt.net


More information about the freebsd-threads mailing list