From owner-freebsd-hackers@freebsd.org Thu Oct 8 08:06:30 2015 Return-Path: Delivered-To: freebsd-hackers@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 C1B8D9D1209 for ; Thu, 8 Oct 2015 08:06:30 +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 373ED7CE for ; Thu, 8 Oct 2015 08:06:30 +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 t9886Lk4080039 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 8 Oct 2015 11:06:21 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua t9886Lk4080039 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id t9886LmH080038; Thu, 8 Oct 2015 11:06:21 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 8 Oct 2015 11:06:21 +0300 From: Konstantin Belousov To: Garrett Cooper Cc: "freebsd-hackers@freebsd.org" Subject: Re: Comparing behavior of test-fesetenv.c on AMD Opterons and Intel Xeons: running FNSTENV on Opteron -- should it zero out __x87.__other? Message-ID: <20151008080621.GP2257@kib.kiev.ua> References: <20151008072444.GO2257@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: 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: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Oct 2015 08:06:30 -0000 On Thu, Oct 08, 2015 at 12:38:15AM -0700, Garrett Cooper wrote: > > > On Oct 8, 2015, at 00:24, Konstantin Belousov wrote: > > > > On Wed, Oct 07, 2015 at 05:52:56PM -0700, NGie Cooper wrote: > > I removed a lot of text which I am unable to parse. > > > >> Assertion failed: (memcmp(&env, FE_DFL_ENV, sizeof(env)) == 0), > >> function test_dfl_env, file test-fenv.c, line 136. > >> > >> Program received signal SIGABRT, Aborted. > >> 0x0000000800b842ca in kill () from /lib/libc.so.7 > >> (gdb) frame 3 > >> #3 0x0000000000400ec9 in test_dfl_env () at test-fenv.c:136 > >> 136 assert(memcmp(&env, FE_DFL_ENV, sizeof(env)) == 0); > >> (gdb) p env > >> $1 = {__x87 = {__control = 4294902655, __status = 4294901760, __tag = > >> 4294967295, __other = "W\224}\200 > >> \000\004\001\250\244D\201;\000\377\377"}, __mxcsr = 8064} > >> (gdb) p ((fenv_t)__fe_dfl_env) > >> $2 = {__x87 = {__control = 4294902655, __status = 4294901760, __tag = > >> 4294967295, __other = '\000' , "\377\377"}, __mxcsr > >> = 8064} > > > > This test is wrong. The __other member of the struct fenv_t is not filled > > by fegetenv(), so it content retains a stack garbage that was there before > > the call. On the other hand, FE_DFL_ENV is explicitely initialized with > > zeroes. > > > > Test must be fixed to compare only meaningful fields of two environments. > > Hi kib! > > Ok -- that's what my gut was telling me when I was reading the spec, but I needed a second opinion. Interesting how Intel leaves the __other field alone and AMD [opterons] don't ;/.. Your statement does not make any sense. Re-read what I tell above. The __other field is not written by code, the code does not change by the matter of being run on Intel or AMD processors. It just happens so that on one of your system the stack are seems to be zero, while on another, it does not.