Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Mar 2001 16:23:40 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        John Baldwin <jhb@FreeBSD.ORG>
Cc:        "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.0103311623200.6249-100000@besplex.bde.org>
In-Reply-To: <XFMail.010330150118.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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 :-(.

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.0103311623200.6249-100000>