From owner-freebsd-current Sat May 11 03:48:05 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id DAA02882 for current-outgoing; Sat, 11 May 1996 03:48:05 -0700 (PDT) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id DAA02854 for ; Sat, 11 May 1996 03:47:54 -0700 (PDT) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id UAA23181; Sat, 11 May 1996 20:45:46 +1000 Date: Sat, 11 May 1996 20:45:46 +1000 From: Bruce Evans Message-Id: <199605111045.UAA23181@godzilla.zeta.org.au> To: asami@cs.berkeley.edu, bde@zeta.org.au Subject: Re: some more on fast bcopy Cc: current@freebsd.org, nisha@cs.berkeley.edu Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > * 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