*BSD News Article 27448


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!EU.net!news.funet.fi!klaava!klaava!not-for-mail
From: torvalds@klaava.Helsinki.FI (Linus Torvalds)
Newsgroups: comp.os.386bsd.development
Subject: Re: Could the BSD 4.4 Lite be a new beginning?
Date: 16 Feb 1994 15:43:14 +0200
Organization: University of Helsinki
Lines: 29
Message-ID: <2jt7ti$1ib@klaava.Helsinki.FI>
References: <HSU.94Feb14043905@laphroaig.cs.hut.fi> <R60q1p-.dysonj@delphi.com> <g89r4222.761250723@kudu> <CL9MHI.ECq@cogsci.ed.ac.uk>
NNTP-Posting-Host: klaava.helsinki.fi

In article <CL9MHI.ECq@cogsci.ed.ac.uk>,
Richard Tobin <richard@cogsci.ed.ac.uk> wrote:
>
>I would be interested to know the results of running crashme on a BSD
>machine without a floating point processor - floating point emulation
>is a fine area for bugs.

I agree.  I've asked lots of people to run crashme on linux, and the
floating point emulator has been cleaned up as a result of the results
(it didn't actually crash, but the kernel complained a lot).  The
"floating point" operations crashme tends to try out are rather
interesting (undefined precision masks, weird prefixes etc), and it does
take some work to fix them all (and yes, all reported errors fixed now). 

One particularly interesting way to mess up the floating point emulator
that Bill Metzenthen (who wrote the current linux FPU emulator) came up
with is to modify the FPU instruction *after* it has already been
pre-fetched.  So by the time the floating point emulator gets to emulate
the instruction that trapped, the instruction no longer exists, and the
emulator sits there looking at an instruction which isn't a floating
point instruction at all. 

Just for interest: so far, I have three reports of actual kernel lockups
after running crashme for some hours, one of which was due to a buggy
i386/i387 combination.  The reason for two are yet to be determined. 
The other reports are successful, but the longest specific report was
just a few over-night runs: good, but not conclusive by any means. 

		Linus