From owner-freebsd-ppc@freebsd.org Wed Apr 17 20:17:53 2019 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C78021578598 for ; Wed, 17 Apr 2019 20:17:53 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic310-21.consmr.mail.gq1.yahoo.com (sonic310-21.consmr.mail.gq1.yahoo.com [98.137.69.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9CD4391D4F for ; Wed, 17 Apr 2019 20:17:52 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: 72lzrCAVM1nMOvs1I7r1FZTQtgUOlzIKyikRFMRunGQ90xF97r1ZQI6jWNpYMsV UkQqT0bk0qCpi9IYO_ML0SAlamWpCoLMv1LaEBtW6a9AMYDhVgSsAUZv25spSrD7CyXMjFTev0Ck kR1BhnUb3TzdEw.UfNmgGzriploMtsJHGW63vxRRWE1hD3Va6ID9l6wH6Vs286NK4eB8mtmgJw.F JyYk.OATGdKTkbbIEarz9ld4cfqYAt4UDoi9qmpxPkUFe7yN0Z7WmN8hKrJmABXflt3G7jM0QJ8j lBg1d5.hBwiVzCBMJwxsMgmlnNoinDnY.WIeK4K6qa9XOTeC3FxoHr5DF2xsujTOOKZ76qAZrcOK WYGz3SeZ1yQCYytg32HYSOZYaux__5OdwkrhGzIJSKqgjOm57.Lkcp0smxorNH4jT3KhOwnT3rli K7iMJY1ow4BKpVj4b8IKvkQ5tnAjqatL0cPLmLHe3YXSg1zuuvgRuCITe5dtkpVwULgpppQ.mz8h VzKgYUdvaCnoaCRTkANxdnIGjhDD6.R23CEFfH3whLo4zaCNNBXEp4n7n7ReP9M7_.QajXjOSdQq Hfiypzi5Tjx67Bw5wJnzrFH7xx2skA0St9dEx8wYLBf3RytOfdTQ.YDfBN1slEzgWRvWJB7DSuPX HXOo7y051XVzaG2.2n_DDtDoJ9JwYhuMkSAsyQa9ZuhYUV2BvkRcbWgYdhGa2ETkW4HRiNjJld6M JRskKZvHmR9wiMMOybOSLHxlZgdLcA.sOyBfpjSou0csgydsu2269.p7Lax7VLtzMQBX0FYaWWTz AuA9oYQFve9_4IHX9JzC0u5XpILGRC9pzMOeqZZGB8Vq0CwyMVasmssvcNEWE9SG7X511EBSL8eP i0ivjKq5kEq93IXA51mk5_XOZI6IJshDzqmt0WiFm0tyVBXkAIv9LoIaMJdPX.ksilRHT25jEH94 4FQG5qmxOhHkoa6Vi9HM5fdUPN8bywHX75R0FzD_CVDe_VVmyrhQUFgWiep2JJ7jclDgc1AoNmNx Qs_1jAaWO1dqLZbnx7JyIbaCh1Dh1QPrwoD4OGsOsfFH6Ka7ZQUY5sQbT5KCCwL2w4t3.5t9M9Q- - Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.gq1.yahoo.com with HTTP; Wed, 17 Apr 2019 20:17:44 +0000 Received: from c-76-115-7-162.hsd1.or.comcast.net (EHLO [192.168.1.103]) ([76.115.7.162]) by smtp425.mail.gq1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 96dbaab0920c7e42b9cb7a2c7fef1910; Wed, 17 Apr 2019 20:17:40 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\)) Subject: powerpc64 and 32-bit FreeBSD, powerpc mttb(time) use vs. interrupts: should interrupts be disabled around the 3 mtspr's? Message-Id: <1202CA56-C1A7-441C-9854-F5790C8F9D7B@yahoo.com> Date: Wed, 17 Apr 2019 13:17:39 -0700 To: FreeBSD PowerPC ML , Justin Hibbits X-Mailer: Apple Mail (2.3445.104.8) X-Rspamd-Queue-Id: 9CD4391D4F X-Spamd-Bar: ++ X-Spamd-Result: default: False [2.68 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MV_CASE(0.50)[]; FREEMAIL_FROM(0.00)[yahoo.com]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; MX_GOOD(-0.01)[cached: mta6.am0.yahoodns.net]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_HAM_SHORT(-0.35)[-0.353,0]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; FROM_EQ_ENVFROM(0.00)[]; IP_SCORE(1.05)[ip: (3.62), ipnet: 98.137.64.0/21(0.93), asn: 36647(0.74), country: US(-0.06)]; SUBJECT_ENDS_QUESTION(1.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/21, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; NEURAL_SPAM_MEDIUM(0.57)[0.570,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_SPAM_LONG(0.92)[0.924,0]; RCVD_IN_DNSWL_NONE(0.00)[147.69.137.98.list.dnswl.org : 127.0.5.0]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Apr 2019 20:17:54 -0000 For: static __inline void mttb(u_quad_t time) { mtspr(TBR_TBWL, 0); mtspr(TBR_TBWU, (uint32_t)(time >> 32)); mtspr(TBR_TBWL, (uint32_t)(time & 0xffffffff)); } an example use of the powerpc code is: li r3,0 rldicl r5,r4,32,32 mttbl r3 mttbu r5 mttbl r4 blr Nothing about this prevents interrupts between powermac_smp_timebase_sync+0x8 and powermac_smp_timebase_sync+0xc or between powermac_smp_timebase_sync+0xc and powermac_smp_timebase_sync+0x8=10 . The code sequence is not atomic for the time base assignment. Should mttb be something more like: static __inline void mttb(u_quad_t time) { const uint32_t high= time>>32; const uint32_t low= time&0xffffffffu; const register_t predisable_msr= intr_disable(); mtspr(TBR_TBWL, 0); mtspr(TBR_TBWU, high); mtspr(TBR_TBWL, low); intr_restore(predisable_msr); } Or is the mttb usage guaranteed to only be in contexts without any interrupts? === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)