Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 May 1996 20:45:46 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        asami@cs.berkeley.edu, bde@zeta.org.au
Cc:        current@freebsd.org, nisha@cs.berkeley.edu
Subject:   Re: some more on fast bcopy
Message-ID:  <199605111045.UAA23181@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
> * It can't be interrupted, but it can go to sleep for handling a page
> * fault.  Then bad things may happen.

>You mean they can get waken up in the wrong order and something
>similar to what I said can happen?

No, you lose control of the FPU when you go to sleep.  Something may
clobber the registers or turn off the TS bit.  The latter caused the
panic.

> * 	if (intr_nesting_level > 0) {
> * 		/* Save reentrantly the same as now. */
> * 	} else {
> * 		if (npxproc != NULL) {
> * 			assert(npxproc == curproc);
> * 			fnsave(&curpcb->pcb_savefpu);
> * 			npxproc = NULL;
> * 		}
> :

>Um, I assume you are talking about /sys/i386/i386/swtch.s, can you

No, this is in the copy routine.

>somehow translate this into, say, assembly language? ;)  My x86
>knowledge is not nearly enough for this kind of stuff....

gcc is good for translating C to asm :-).  My pseudocode should almost
compile to inline code if the macros in npx.c are used.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605111045.UAA23181>