From owner-svn-src-head@freebsd.org Sat Oct 3 07:03:03 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E342EA0FD69; Sat, 3 Oct 2015 07:03:02 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A6A118D5; Sat, 3 Oct 2015 07:03:02 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id t9372u6R091217 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Sat, 3 Oct 2015 10:02:56 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua t9372u6R091217 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id t9372uPg091216; Sat, 3 Oct 2015 10:02:56 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 3 Oct 2015 10:02:56 +0300 From: Konstantin Belousov To: Ian Lepore Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, gjb@freebsd.org Subject: Re: svn commit: r288492 - head/sys/arm/arm Message-ID: <20151003070256.GD11284@kib.kiev.ua> References: <201510021326.t92DQ0Ds002986@repo.freebsd.org> <1443795970.66572.68.camel@freebsd.org> <20151002152059.GY11284@kib.kiev.ua> <1443803276.66572.72.camel@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1443803276.66572.72.camel@freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Oct 2015 07:03:03 -0000 On Fri, Oct 02, 2015 at 10:27:56AM -0600, Ian Lepore wrote: > On Fri, 2015-10-02 at 18:20 +0300, Konstantin Belousov wrote: > > On Fri, Oct 02, 2015 at 08:26:10AM -0600, Ian Lepore wrote: > > > Some arm documentation refers to the need for "support code" when the > > > flush-to-zero option is disabled on VFPv2 hardware (which for us would > > > be just the RPi I think). Do we have that support code? What happens > > > if it's missing? I can't actually find any info on exactly what that > > > support code is supposed to do. For all I know, we have the required > > > code in libm. Or maybe what's needed is exception-handling code in the > > > kernel. I can't find any info on what they mean by "support code" in > > > this context. > > The fpscr register is user-modifiable, so whatever happens after the > > change, could as well happen before it. > > > > I saw the references to the support code in e.g. ARM v7-A A2.7.5 > > Flush-to-zero. But I was sure that the text refers to the modes when > > e.g. FZ is cleared and UFE or IXE bits are enabled. In this situation, > > fault handler must do something to allow the computation to proceed. > > > > > > > > I don't think this is an issue for VFPv3 and later hardware. I've > > > looked in a few of the TRMs for different cortex-a series processors and > > > they say the hardware handles all combinations of rounding and flush to > > > zero without support software. But we should probably be on the lookout > > > for reports of misbehaving apps on RPi after this change, just in case > > > this setting has been protecting us from our ignorance there. > > > > I did found the reference to the support code in the VFP11 TRM, which in > > turns point to > > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.epm049219/index.html > > Does FreeBSD enable and handle this variant of coprocessor ? If yes, then > > indeed I would need to not enable FZ on the affected hardware. > > > > That link opened a reference to a cortex-a57 chip for me. I've had > problems trying to share links to arm's documentation site, something > about the way that navbar stuff works makes pasting links not-work. I tried to reference App Notes and tutorials -> All Application Notes -> AN098 - VFP Support Code > > We support one arm11/VFPv2 chipset, the one used on RPi. It's the only > actual armv6 chip we support, all the other stuff supported by the arch > we call armv6 is really armv7. The TRM for the arm1176JZF-S core used > on RPi is the one that mentions needing support code. Yes, testing on original RPi, done by Glen, demostrates it. The test program I used is at https://www.kib.kiev.ua/kib/perl_opbasic_arith_175.c https://www.kib.kiev.ua/kib/perl_opbasic_arith_175 is the compiled binary with -mfloat-abi=softfp Also the following untested on RPi patch should fix this. I verified that it still starts with FZ bit cleared, on VFP v3 (RPi 2): https://www.kib.kiev.ua/kib/rpi-fz.1.patch