Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp914868pxt; Fri, 6 Aug 2021 17:53:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzzLahThIITGylOXASNohoDZcPeSyUtOQaz57is74z6NYLm9sdEcyTJbw9uTj9zPL2dIjw3 X-Received: by 2002:a17:907:1c92:: with SMTP id nb18mr12706736ejc.191.1628297598837; Fri, 06 Aug 2021 17:53:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628297598; cv=none; d=google.com; s=arc-20160816; b=LO7wun+FQnDdFL0n8n4fbgebPVvb9tQ24mpQPiwhgGJ1GjTIMF4Lzd7ncA7mBVumih +TFhgSjH+DWzDyOEGhISDj8Ksh1K9V5BTRz+pPdt4JkW+juSW9iTLBCcS6GvsQXpK/q6 RwvWtt9Rzr4TKyBculwtIPznqDg6SoA05+Xk+oK+0WYlH0mpWHOl1sOW1XsLprq2agTa /EBmAOBxgx/NJCaYqJeBI1To294Ek1VMmDtr3T858fm0Tr6DO3rFHoLqRcyKMclPj4kU NQ9lWbtSaJeYS7HbX5tPiRI+QMbLImcljQ1cKcReUn5ubr2Ks2XaZxH4VsNXph3ytjVJ mFGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=RsWGFG+J7qnMvad/1u3KaSXooT3HgtxUzPC2Y29aQw4=; b=u/XJsv6fNkhCzvRqUCfDsDDZjheUqBhN3eeANRLrEKn0oaxozosen3E2OgvU6+h5Ej lcJW7/r7jESZcsX9aq3B+4bW/WIE8YaxTJDs1xR0eDGQaE0nptZUplexGjKP+QK+OgjZ dn9dqo5i06LGcBFHmdGbyShL0IoE5R5UjqBx6JqUMCvzp9C2AIGsK0JUHdqSIbjmt8b9 Z0sPhQOoVuq4ZAWVOz1SEfTk5LEfmBz7eh/5ixF/nxU/fBIka/9s8rXiMWUe4FGbk2q4 CUFq/6gcAoq/jJQ4uT8BLxdg+cOUZpO812vW9Vmtb/gTUkBIys8C7r/PEyJAu1LtAnnn v7Og== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y19si9761153edw.429.2021.08.06.17.52.54; Fri, 06 Aug 2021 17:53:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229724AbhHGAvs (ORCPT + 99 others); Fri, 6 Aug 2021 20:51:48 -0400 Received: from netrider.rowland.org ([192.131.102.5]:45171 "HELO netrider.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S229589AbhHGAvs (ORCPT ); Fri, 6 Aug 2021 20:51:48 -0400 Received: (qmail 476927 invoked by uid 1000); 6 Aug 2021 20:51:30 -0400 Date: Fri, 6 Aug 2021 20:51:30 -0400 From: Alan Stern To: Jade Alglave Cc: Will Deacon , Peter Zijlstra , Linus Torvalds , Segher Boessenkool , "Paul E. McKenney" , Andrea Parri , Boqun Feng , Nick Piggin , David Howells , Luc Maranget , Akira Yokosawa , Linux Kernel Mailing List , linux-toolchains@vger.kernel.org, linux-arch Subject: Re: [RFC] LKMM: Add volatile_if() Message-ID: <20210807005130.GA476712@rowland.harvard.edu> References: <20210605145739.GB1712909@rowland.harvard.edu> <20210606001418.GH4397@paulmck-ThinkPad-P17-Gen-1> <20210606012903.GA1723421@rowland.harvard.edu> <20210606115336.GS18427@gate.crashing.org> <20210606182213.GA1741684@rowland.harvard.edu> <20210607115234.GA7205@willie-the-truck> <20210730172020.GA32396@knuckles.cs.ucl.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210730172020.GA32396@knuckles.cs.ucl.ac.uk> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 30, 2021 at 06:20:22PM +0100, Jade Alglave wrote: > I hope this material can help inform this conversation and I would love > to hear your thoughts. Thoughts on section 4... The definition of Pick Basic dependency is phrased incorrectly. The "all of the following apply" in the first paragraph refers only to first bullet point, which in turn refers to the following two bullet points. The "all of the following apply" phrase should be removed and the first bullet point should be merged into the main text. The definition of Pick dependency is redundant, because each Pick Address and Pick Data dependency is itself already a Pick Basic dependency. The same is true of the cat formalization. In the cat code, the definition of Reg looks wrong. It is: let Reg=~M | ~BR Since (I presume) no event falls into both the M and BR classes, this definition includes all events. It probably should be: let Reg=~(M | BR) or let Reg=~M & ~BR It's now clear that my original understanding of the underlying basis of Intrinsic control dependencies was wrong. They aren't separated out because CPUs can speculate through conditional branches; rather they are separated out because they are the things which give rise to Pick dependencies. It would have been nice if the text had explained this at the start instead of leaving it up to me to figure out for myself. Alan