From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 28F89C4363D for ; Mon, 5 Oct 2020 14:16:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DBF1020637 for ; Mon, 5 Oct 2020 14:16:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726407AbgJEOQ3 (ORCPT ); Mon, 5 Oct 2020 10:16:29 -0400 Received: from netrider.rowland.org ([192.131.102.5]:57691 "HELO netrider.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1725903AbgJEOQ3 (ORCPT ); Mon, 5 Oct 2020 10:16:29 -0400 Received: (qmail 377541 invoked by uid 1000); 5 Oct 2020 10:16:28 -0400 Date: Mon, 5 Oct 2020 10:16:28 -0400 From: Alan Stern To: Will Deacon Cc: "Paul E. McKenney" , parri.andrea@gmail.com, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, dlustig@nvidia.com, joel@joelfernandes.org, viro@zeniv.linux.org.uk, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org Subject: Re: Litmus test for question from Al Viro Message-ID: <20201005141628.GA376584@rowland.harvard.edu> References: <20201001045116.GA5014@paulmck-ThinkPad-P72> <20201001161529.GA251468@rowland.harvard.edu> <20201001213048.GF29330@paulmck-ThinkPad-P72> <20201003132212.GB318272@rowland.harvard.edu> <20201004233146.GP29330@paulmck-ThinkPad-P72> <20201005023846.GA359428@rowland.harvard.edu> <20201005082002.GA23216@willie-the-truck> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20201005082002.GA23216@willie-the-truck> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Oct 05, 2020 at 09:20:03AM +0100, Will Deacon wrote: > On Sun, Oct 04, 2020 at 10:38:46PM -0400, Alan Stern wrote: > > Considering the bug in herd7 pointed out by Akira, we should rewrite P1 as: > > > > P1(int *x, int *y) > > { > > int r2; > > > > r = READ_ONCE(*y); > > (r2?) Oops, yes, thank you. > > WRITE_ONCE(*x, r2); > > } > > > > Other than that, this is fine. > > But yes, module the typo, I agree that this rewrite is much better than the > proposal above. The definition of control dependencies on arm64 (per the Arm > ARM [1]) isn't entirely clear that it provides order if the WRITE is > executed on both paths of the branch, and I believe there are ongoing > efforts to try to tighten that up. Do you mean that people aren't yet in agreement about what the answer should be? How can the CPU tell whether a write is executed on both branches? Speculatively execute both and see if they both reach the same write instruction? What if the same instruction is reached on both branches but the values written or the addresses written to are different? > I'd rather keep _that_ topic separate > from the "bug in herd" topic to avoid extra confusion. Indeed. Alan