On 31-Mar-01 Bruce Evans wrote:
> On Fri, 30 Mar 2001, John Baldwin wrote:
> 
>> On 30-Mar-01 David O'Brien wrote:
>> > On Fri, Mar 30, 2001 at 07:45:43AM +0200, Mark Murray wrote:
>> >> I thought the 586 FP stuff was disabled?
>> > 
>> > Nope.  Depending on how current you are, it was either left broken.
>> > I commited BDE's fix to exeception.s that fixed things for K6-2 users.
>> 
>> It looks like it is just broken in the SMP case.
> 
> It is more just broken than before in the SMP case.  Premptive context
> switching in the kernel did most of the breaking, and recent changes
> added sanity checks that detected a very broken case.  With preemptive
> context switching, the following can happen:
> 
> - we start using the FPU on a CPU with a free FPU (we used to free the
>   FPU in some cases; now we only use optimizations in bcopy/bzero if
>   the FPU was free to begin with).
> - we do a preemptive context switch and come back using a different FPU.
> 
> The different CPU might even be unfree, and that case is now detected.
> In other cases, we just corrupt data by using different FPU registers :-(.

Ugh.  Hrm, then we need to either disable interrupts inside of i586_* or set a
hard affinity flag in the process such that all other CPU's will ignore it and
only p_lastcpu will run it next.

> Bruce

-- 

John Baldwin <[EMAIL PROTECTED]> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to