Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 May 1999 00:37:46 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, cracauer@cons.org, jkh@zippy.cdrom.com
Cc:        current@FreeBSD.ORG
Subject:   Re: FP exceptions broken (Re: Interesting bogons from last night's 4.0 snapshot.)
Message-ID:  <199905291437.AAA04536@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>>> JFYI - don't want us getting *too* complacent with -current now, do we? :-)
>>
>>Floating point exceptions are also broken, they always behave like
>>masked, even if you unmask some explicitly with fpsetmask().
>>
>>Even worse, a wrong result is returned if an exception had to be
>>thrown, while the result is right for masked exceptions.
>
>This seems to have fixed itself:
>
>May 23 kernel: fails
>May 24 kernel: works
>May 28 kernel: works

Actually, it works on a Celeron but fails on a P5.  This is caused by the
following bug suite (in approximately historical order):
1) IRQ13 interface was broken as designed.
2) Intel F00F bug.
3) Probe for (1) is not very well implemented.  It hacks on the idt[]
   global to context switch some IDT entries.
4) Fix for (2) is not very well implemented.  It moves the IDT without
   hiding idt[] from (3).
5) Rev.1.55 of <sys/kernel.h> disturbed the probe order so that (4) is
   done before (3).  This breaks the IDT context switching if the F00F
   fix gets installed.  npx traps and interrupts end up being serviced
   by the dummy probe routines.

The easiest fix is to change the probe order.  The F00F fix should never
have been attached to proc0 initialisation.

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?199905291437.AAA04536>