On Fri, 6 Dec 2002, Julian Elischer wrote:
> As part of shuting down a thread and discarding it, we want to 
> throw away any floating point context there may be.
> Currently this saves out the floating point state to make the fpu
> be declared 'unused'. However we dont't need any fpu state saved.
> Is there any way to just mark it as 'unused' without bothering to waste
> time saving the current FP context? would just doing
> PCPU_SET(fputhread, NULL);
> be enough?

Hmm, I don't think so.  You really want to drop ownership
without saving and also to get a trap when the next thread
tries to use the FPU.

For i386, fpstate_drop() in machdep.c does this.

> Currently there is an npxexit() in cpu_thread_exit().
> where npxexit() does:
>         savecrit = intr_disable();
>         if (curthread == PCPU_GET(fpcurthread))
>                 npxsave(&PCPU_GET(curpcb)->pcb_save);
>         intr_restore(savecrit);
> 
> My guess is that there needs to be some bit set to tell the hardware
> that it is unused  so that a trap can be generated on the first use by
> another thread.

Yeah, it's done in npxdrop() (called from fpstate_drop()).

-- 
Dan Eischen


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to