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