Bug in kse_switchin()?

Daniel Eischen deischen at freebsd.org
Wed Sep 22 04:46:20 PDT 2004


On Wed, 22 Sep 2004, Andrew Belashov wrote:

> Daniel Eischen wrote:
>  > On Tue, 21 Sep 2004, Julian Elischer wrote:
>  >
>  >>Andrew Belashov wrote:
>  >>
>  >>
>  >>>See sys/kern/kern_kse.c
>  >>>
>  >>>In line with "suword32(&uap->tmbx->tm_lwp, td->td_tid)" kernel
>  >>>not check return value (error state). This is correct?
>  >>
>  >>
>  >>yes and no.
>  >>
>  >>You are correct.
>  >>It is never correct to "not check" however we have just looked at that
>  >>location 7 lines earlier, so we know
>  >>that the page in question is loaded and valid. This is is "prbably safe".
>  >>
>  >>Probably we should look at the error value also, even if this is true.
>  >
>  >
>  > Julian, you missed an important question below.  It looks
>  > like he's trying to get this working with sparc64 and the
>  > suword32 is generating an alignment exception.
>  >
>  > Is lwpid_t 64-bit on sparc64 or is it somehow not being aligned
>  > properly within the mailbox?
>
> lwpid_t on sparc64 is 32-bit (typedef __int32_t       __lwpid_t).
>
> What about using copyout?

Does it have to be 64-bit aligned in order to use suword32()?
I believe you can use copyout, but perhaps the mailbox should
be laid out so that fields are better aligned (doing this
would break ABI).

-- 
Dan Eischen



More information about the freebsd-threads mailing list