*BSD News Article 22379


Return to BSD News archive

Newsgroups: comp.os.386bsd.bugs
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!howland.reston.ans.net!vixen.cso.uiuc.edu!sdd.hp.com!ncr-sd!sceard!mrm
From: mrm@sceard.Sceard.COM (M.R.Murphy)
Subject: FP exception problems and TEMPORARY FIX
Message-ID: <1993Oct13.172919.18640@sceard.Sceard.COM>
Keywords: FP problem FIX
Reply-To: mrm@Sceard.COM (M.R.Murphy)
Organization: The Mole and Badger Association of Northern San Diego County
Date: Wed, 13 Oct 93 17:29:19 GMT
Lines: 53

I have an older 386SX25/387SX and a 386SX16/387SX. Both exhibit really flakey
behavior under 386bsd 0.1 (0.2.4) and FreeBSD-1.0-EPSILON. syslogd dies
leaving core.syslogd, routed dies leaving core.routed, wierd stuff shows
up on a command line whilst typing from an X-term on another machine. gcc
dies when trying to build a new system, or make dies or the shell dies. Bus
errors abound. This is really flake time. Remove 387SX and it works. hmmmm :-)

The FP reports errors on IRQ 13. The following fix makes a system that works
but it's really a hack (this diff is for 386bsd0.1 (0.2.4), but should be
similar for FreeBSD 1.0-EPSILON): 

-----8<----
*** npx.c	Wed Oct 13 09:59:37 1993
--- npx.c.v	Wed Jun 30 22:32:37 1993
***************
*** 436,442 ****
  	/*
  	 * Pass exception to process.
  	 */
- #ifndef NOSIGFPE
  	if (ISPL(frame.if_cs) == SEL_UPL) {
  		/*
  		 * Interrupt is essentially a trap, so we can afford to call
--- 436,441 ----
***************
*** 479,485 ****
  		 */
  		psignal(npxproc, SIGFPE);
  	}
- #endif /* NOSIGFPE */
  }
  
  /*
--- 478,483 ----


-----8<----

To get a working system:

  1) shutdown and remove the 387SX,
  2) boot with only FP emulation,
  3) define option NOSIGFPE in the configuration file
  4) apply the patch above to npx.c to inhibit SIGFPE reporting
  5) build and install the system.
  6) shutdown, reinstall 387SX, and reboot

Flakieness is now gone at the expense of no SIGFPE reporting. This poorly
implemented fix hides the problem with IRQ 13 processing, but at least it
lets the 387SX work.

-- 
Mike Murphy    mrm@Sceard.COM    ucsd!sceard!mrm    +1 619 598 5874