From nobody Thu Feb 16 23:31:13 2023 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PHrmx2wyyz3qWyG for ; Thu, 16 Feb 2023 23:31:29 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic314-20.consmr.mail.gq1.yahoo.com (sonic314-20.consmr.mail.gq1.yahoo.com [98.137.69.83]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4PHrmw3MBgz4Mlj for ; Thu, 16 Feb 2023 23:31:28 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=lz7IgGUn; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.69.83 as permitted sender) smtp.mailfrom=marklmi@yahoo.com; dmarc=pass (policy=reject) header.from=yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1676590286; bh=T1SvUZUkxgywIv4mdJ+KnUgGHBtUTQwMPrKzHN/RiH0=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=lz7IgGUnMutNmckjZ/5H6oKiSLaluXsJxF/4S0In5vZ7dfE2ZHM27Vutfg3As9u4PlKRO4RiFCFhynhcpSb42+2nC8V2k9K0Q7C4jrpEoNfQnOtghsF1fP0aZzoaMWrJ/EWBfzsfZnJGbOpls8+cKoXqJGpKwR7AVUPwjuRnU0pSRQD0r/YjAi14niMkbgEU5k/Zb9CJapeHCiGsU3jBFJWnv57gzpAQVwVpY7a8KXoqYxHX5z3eErh8aLxYkOKYtVoWktV0qZlOGSTnQzIMkYa+K2de4tnew4luyUNdF/M5u2KTsRZmcnD3w+16zL3LNJOhQ/JfhNFLyTE0juel2Q== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1676590286; bh=CpH4SpQKaNlqEvlZUbRaj9cLZzBlQ1Ls8Z6JV6BYg+5=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=PINQg9EoVlfgqmRpKK/c0uZ5prtLxwo8dOeoegNO+DnA3AtGCQct1ZipCaiX6P3y33WPxZOFxd+HRqehXbryKHznKCTrvoAusQOY7YeQMIBj4TGDRe6KalQLNCNu0frFxgWSvyFD+Pv4xZdMN56aIsPFfRApkWkeaEbwod4VwMnrhPoelb97CO2mfzepF+bu3BuzkS28NsINaknHntDgFAwiCCMoOrx3Bsw91lGszVHibd13jjcRMpMOgZwwwsMV1lSJHXk3SpdMd+42OrjlWOdISUR9vcxexONytaWT6E66ztkLMktiz0KJQUS9//733VGFWLPtO39kE7C7c9Fm0Q== X-YMail-OSG: uaf_IZcVM1kzwHUAMqhTKcOF2D1q.eqomTEYG3OFs9kreILWxfLwGDQ2ZwMYwUs 2qYXeoXT.EMQt0EI.Az0k4YIcVpGeVTxnPNBnvSH22YsISeJSX3CxJz4aySC4nyjEcxl52otOrVM gbgvrQ9_1.IlyxJNquBySqEpbzhSw06dEtcZHCdVkifwh4gY6wKlOxuv2fD0HfxkE1vwdIokBVr4 z8aY_fVsSOCR.TrUVysZBtEKT6Q2ThXd0y2ZHY3YoxN6i8EjsBAJGudHMLbaY6DvHawPc4Twk54D 3zvsqh37CH5Gy8BiLbdKOot6_vZJ9Otxb5z9vhtx8TpIbPo9EF0c6HqHDCd.wePzzJX4i_SIG5xY 0Rako5wVAWcpQ8_QzaRp8rBx08vSO3sZBgqXUoM2dcocUtbqOtzbm3.3rmbsANWm7lmJFCadG5Bq 7.RqwFpROAx1QS1mSjMPbKRWi5ICvSLvlSK1zm9BLHkF.1pvmsIWvRQA1TGiE8ZYK1QpSklsgpHl vrbvAoIZUlvUaijXDF3agJ_FRAarBQ38igqtLAZ5Fgok2vPsuKMux.DkZkLhlWhKhgMBNaSJK2sF OLzO6rHJu7cTK63og4WtNXUBqrYNRcbUaaTEGemUjLqpsAOP.ZVCyklvlyvLJ3OraqozD8_OZmn5 byHyrjWl9vxsyGkSHwPi.JXl0pShKAwbv6ikGYlERmgcEw41aPKUB0c5uUIs1fuccABCedu8NUXP s4WJKtYCzB.awrg8tCRctdqgn_P2b0QxGIsEDzGXP6jcY.EkYQjY_HiT70vc03ZEIORIqS0b5FQI 9IcwkBOzrNm3QQG9VNqOWzQEyasgHZG_aiwXHd3itAkJMmGYYTr.D9JgaZM6XNNldJn.e.VJEhXK eKlSLSFnApilRWdtI_dD4eBzxlEPZF2olBU_jUSAfBVYqFBdhJBEzdMfIHAzHi9_aS9_AbLxpatF bhMHKj.Xfi3F9Izy5fKUQaP_kWCXjRKhyye_hZAFJTJe2m3eBixUe97p3ZfKHOBSwQsOvVxneh3X iSNrx.s8cLLDju1VZ.7qRJo_k3sHonbjuEOWkPrFmblIHWd133sAPgdxqctBiUXVSzfb55aULpJZ qu3A5cpuYLT9eQ7tC_XBUf3r7UQN1UWjC.1tUPgYOemcPSMr_hVulitE3k1XPdzfrHePfWrG.9I4 GHVEE..vmFh7hp7DW_oKY038rNkRlqnyZw9WHbZOYCiW.pzvAolQj4MMLqDN.H0K_4jV9Fphny0g UsrhfsGkJhO6O38GnFWGP7KUkeKC5ZqgV5_2BMmYrtO_d4K2dyscLNkF67YK.XHmeWWUZxwk6PWv 9JcbikgwCXAHIRTvn_JxuYcjkR0RPoQkT80GFUZqLyWe.pfFmrvMPZYZrHy.vZgxmSO7fClmBAv7 oVBu2Khzt6W6dNfdkkiWzMx8e4tRUBeCWU8YWryTnMXrxzf0VFBzr5YEUC4hTvEg_fM2.xtPehOj uIweYcjIO1U2U._ioAg8drfJhvH1hdaviMyF9.4ROsTiHig_uj8wdQyvJLpzjtDio5icqaBXmrNO _wcMRshkw9ykxs.ho8i3KJ8KeZr5eYtLrTb87BEugxqNm9eTpIeq5nIzQ2FhGdkxGIsUr01U5jxF bigavO6_kZj8YPs2ZFdK.Y2ltbURLAC7dtdY4RftS8Lltb_Adp1YoZAZ12MBibDxuQenwvaFG.sr 8FTU5beI7nhw4wf5vrGeXqlGH641mLD01tkkwUAMZUawgNDDD6TO8hcczj5EUgnNlzJ6pbYDkN.8 7ebgIfIPMA51kKHh8_cytaa8uYH2tw1ReJBOGpKDBbu_PaiQWjob1W2e.xTViNPx5abN6wnc49P7 8MG_5CHeSaUZzOxB5wEtJY5i6PQWyWvTr9dfh9IC3501zciHa382vQCMdVpFhgybrRDKrqZORXfr UMWcnw7WK4XFiWDlbIsb_8Ee44gZt2peubdKHQUdEDJCysKpLIUVavGtOIXVGPAcUmtqG3AUXVe5 joGZuQf8XBwoL5cedCfzyzSuPyHzD3fBT114UPCaEZhDYnYGl6BDoKY4FQsdX1B9Oy1kiEYzzjsx ndgp3MQyaYASD15GkP.Cal2uue1ayP8c2BkRR3BFUXAMqFDDUdqe3Z6flDpQ5TFDFGaKReTZgCqu 9ddKGdSg7fBUf0KF0vDQVIfpe.CgfUn3AomupOHcZCtTJu2ZD113R73ziKRUsRdnBxgRrq.zCFzC rNPH1__8OA6BjC6RkEMkq9pjUUQpSTkD3ZNZIJTBH5SizXC0EwH0EW6b060Kz503HG4D7V0hZUM. d8aBa3Q-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Thu, 16 Feb 2023 23:31:26 +0000 Received: by hermes--production-gq1-655ddccc9-h558d (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID d15cc390eabf52117af6b7c9e5e4cdab; Thu, 16 Feb 2023 23:31:24 +0000 (UTC) Content-Type: text/plain; charset=us-ascii List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.300.101.1.3\)) Subject: Re: git: 6926e2699ae5 - main - arm: Add support for using VFP in kernel [new: bad floating point data with multi-threading, not a crash] From: Mark Millard In-Reply-To: <402AEA29-B895-4031-99A0-876A39C02157@yahoo.com> Date: Thu, 16 Feb 2023 15:31:13 -0800 Cc: Warner Losh Content-Transfer-Encoding: quoted-printable Message-Id: References: <3A143148-895F-472B-9AFB-5F1AA0FD1FA0@yahoo.com> <782B252E-60AC-4036-BD74-46B95A31B337@yahoo.com> <4F9A3687-9577-4419-AE1B-D02A4C9212ED@yahoo.com> <402AEA29-B895-4031-99A0-876A39C02157@yahoo.com> To: "kd@freebsd.org" , "wma@freebsd.org" , dev-commits-src-main@freebsd.org X-Mailer: Apple Mail (2.3731.300.101.1.3) X-Spamd-Result: default: False [-3.43 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.93)[-0.929]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; MIME_GOOD(-0.10)[text/plain]; TO_DN_EQ_ADDR_SOME(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.83:from]; MID_RHS_MATCH_FROM(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; MLMMJ_DEST(0.00)[dev-commits-src-main@freebsd.org]; FREEMAIL_FROM(0.00)[yahoo.com]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_LAST(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; MIME_TRACE(0.00)[0:+]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.69.83:from] X-Rspamd-Queue-Id: 4PHrmw3MBgz4Mlj X-Spamd-Bar: --- X-ThisMailContainsUnwantedMimeParts: N I start this message as independent of the prior crash reports: this is not a crash report. It is a messed-up floating point data report instead. I have a simple C++ program that creates 2 independent threads, each working on just local variables, where it appears that after a while one thread ends up with a floating point value from the other thread. The two threads each just have loops incrementing a unsigned long long and a double by 1 in the range where no information is lost, initializing to zero. The cross-check for failure is if it finds an example of n_as_dbl !=3D (double)n . An example build-then-run showing a failure is: # g++12 -std=3Dc++20 -pedantic -g -O3 -pthread = -Wl,-rpath=3D/usr/local/lib/gcc12 dbl_and_ull_multithread.cpp # ./a.out 95534435.000000 !=3D 95531411 ^C (The program would run for a very long time unless both threads observe such a failure in a shorter time frame. So the normal exit is to use control-C (SIGINT).) So far, the values printed are always similar instead of random data showing up. This is part of what suggests that data from the wrong thread has shown up. Because libc++ does not yet have I build with using libstdc++. I have demonstrated the problem via libc++ (clang++ and g++12) as well, calling std::abort instead of outputting. (But that crashes armv7 FreeBSD during the attempt to produce the core file.) The C++ program source and how-to-use-comment is: (whitespace details might not be preserved) // # g++12 -std=3Dc++20 -pedantic -g -O3 -pthread = -Wl,-rpath=3D/usr/local/lib/gcc12 dbl_and_ull_multithread.cpp // # ./a.out // double_value !=3D unsigned_long_long_value // Use control-C to stop it. #include // std::numeric_limits #include // std::future, std::async, std::launch::async #include // std::to_string #include // std::osyncstream #include // std::cout int main(void) { static_assert(std::numeric_limits::radix=3D=3D2,"double's = radix is not 2 and is unhandled"); constexpr unsigned int ull_width { std::numeric_limits::digits }; constexpr unsigned int dbl_width { = std::numeric_limits::digits }; constexpr unsigned int use_width { (dbl_width