Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Apr 2000 23:44:59 -0700 (PDT)
From:      Nate Lawson <nate@elite.net>
To:        freebsd-hackers@freebsd.org
Cc:        freebsd-ports@freebsd.org, davidm@hpl.hp.com
Subject:   Re: floating point exceptions
Message-ID:  <Pine.BSD.3.91.1000424233753.13392A-100000@almond.elite.net>

next in thread | raw e-mail | index | archive | help
I am running FreeBSD 4.0-RELEASE on x86 with gcc 2.95.2 and the
httperf-0.6 port gives a SIGFPE and dumps core when run against a system
that has no web server running.  (The default behavior is to measure
localhost when no arguments are specified). 

It seems this is caused by a divide by zero error since the delta between 
connections ends up being zero.  The author suggest that the divide 
should return a defined value, Inf, according to the IEEE floating point 
standard.  FreeBSD generates SIGFPE.  I temporarily patched the code 
locally to check for a delta of zero and arbitrarily set it to 1.0 so 
that the divide succeeds and everything comes out ok without crashing.

Is FreeBSD's behavior correct?  Why or why not?  You can use the included 
code snippet to verify that this occurs.

Thanks,
Nate

---------- Forwarded message ----------
Date: Mon, 24 Apr 2000 15:54:38 -0700 (PDT)
From: David Mosberger <davidm@hpl.hp.com>
To: Nate Lawson <nate@elite.net>
Subject: Re: patch to httperf-0.6

>>>>> On Mon, 24 Apr 2000 15:37:21 -0700 (PDT), Nate Lawson <nate@elite.net> said:

  Nate> On x86.  Your code generates SIGFPE, not SIGBUS sorry.  Here
  Nate> is a code snippet which generates SIGFPE as well.

  Nate> main() { float a, b, c;
  Nate> a = 1.0; b = 0.0; c = a/b; }

  Nate> This seems to be correct behavior.

No, IEEE says that the exceptions should be disabled by default.  You
should get Inf instead of SIGFPE.

	--david



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSD.3.91.1000424233753.13392A-100000>