From owner-freebsd-current Mon Jan 6 17:54:09 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id RAA20614 for current-outgoing; Mon, 6 Jan 1997 17:54:09 -0800 (PST) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.8.4/8.8.4) with SMTP id RAA20606 for ; Mon, 6 Jan 1997 17:54:06 -0800 (PST) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id SAA13361; Mon, 6 Jan 1997 18:44:32 -0700 From: Terry Lambert Message-Id: <199701070144.SAA13361@phaeton.artisoft.com> Subject: Re: i586-optimized copyin/out still broken To: bde@zeta.org.au (Bruce Evans) Date: Mon, 6 Jan 1997 18:44:31 -0700 (MST) Cc: bde@zeta.org.au, cracauer@wavehh.hanse.de, freebsd-current@FreeBSD.ORG In-Reply-To: <199701030215.NAA13793@godzilla.zeta.org.au> from "Bruce Evans" at Jan 3, 97 01:15:47 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > >I filled a PR (2142) about it, maybe it could be closed then. > > That is much harder to fix. It is caused by the floating point state > not being preserved across signal handlers. There are few, if any, > valid and useful uses for floating point in signal handlers, because > an ANSI signal handler must not make any accesses to a global object > other than assignment to ones of type `volatile sig_atomic_t'. Thus > preserving the state would mainly slow down signal handlers. Is it possible to do a lazy save of the FPU state? If so, it would be a compare/noop until someone did FPU stuff in their signal handler. "The Proper Thing" is probably to set a flag and do the floating point stuff as a result of a signal flag instead of in a signal handler -- that's just good practice anyway, since signals are not events, and it tends to close (a bit) some of the race windows in signals being stupid. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.