On Tue, 3 Apr 2001, Jeroen Ruigrok/Asmodai wrote:

> -On [20010331 05:30], John Baldwin ([EMAIL PROTECTED]) 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to