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