Date: Wed, 4 Apr 2001 16:01:53 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Jeroen Ruigrok/Asmodai <asmodai@wxs.nl> Cc: John Baldwin <jhb@FreeBSD.ORG>, "David O'Brien" <obrien@FreeBSD.ORG>, current@FreeBSD.ORG, Mark Murray <mark@grondar.za> Subject: Re: i586 FP optimizations hosed. Message-ID: <Pine.BSF.4.21.0104041538460.37857-100000@besplex.bde.org> In-Reply-To: <20010403211539.A591@daemon.ninth-circle.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 3 Apr 2001, Jeroen Ruigrok/Asmodai wrote: > -On [20010331 05:30], John Baldwin (jhb@FreeBSD.org) wrote: > >It looks like it is just broken in the SMP case. > > Note: I got a i586_bzero_oops on an UP box. > > It was invoked through the random_process and the random_kthread. This means that i586_bzero was interrupted and the scheduler gave control to something else that used the FPU before returning control to i586_bzero. I think I can see how this can happen :-(. i586_bzero may be being used by a (non-ithread) process. Control may be switched to another (non-ithread) process that uses the FPU for copyin/copyout. The locking for bzero/bcopy doesn't help because copyin/copyout don't use it (they switch the context). The fix should be be to switch the context in all cases. This wasn't done before because it ddidn't work in interrupt handlers in SMPog. It still doesn't work in fast interrupt handlers, but this shouldn't be a problem since bcopy/ bzero are not in the (almost empty) set of functions that may be called from a fast interrupt handler. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0104041538460.37857-100000>