Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp1260960pxj; Fri, 4 Jun 2021 09:48:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz4YJQ8WVbYWqLKOQy+L7c/iTPharSo/FvNTj/dlm/ur3gchdXFFO93GTxr3L1NF4dmuzZV X-Received: by 2002:a17:906:36d4:: with SMTP id b20mr5077633ejc.44.1622825336951; Fri, 04 Jun 2021 09:48:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622825336; cv=none; d=google.com; s=arc-20160816; b=znJVfEaGLKu1KBma8nBo5hM8ULe1x4COZHcaeb4YRtm2derzY9hJeiqu+oUFRak1jl G0SGte8P2FvyOTh9f9kdwR8ybVl2qAH/RFPMnIhXGMVkvVgf2uUCrjrqLzHNBEtCNAL0 AR0IVlr54W06RwDuhVcS7Uqj7BfR46Sgp6RAmuLPb/72bkf+kT3ctyF7TcoEaqtjZgR3 B1HVFweNqT3raaw6pdCoNDfi1li488pll1y++wHfHiqzzvLwAxrJPLtDQAhIoq5RCs9z PG2RgAQtoZWsANocf9L70IwxGpHsgUD9pj1lPhdKHbke43I8YPYFkM7+kvzBAHjbHB31 ejnw== 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=qBGs7pSgfJC+VXTuiSVNl9EbEN++4WjFD+duh6Xfxws=; b=KfrnLk+2KPj6m5F32ksb0Wly/rCFgYpLXVvGK8rOBg7T8T4cZJqQnmq+a9Pf2asR6B TLjSha3C0ksAAv53b0FOscUOHbuYmMQtsm+eOFiLf/JADfxlt6GcbMAplcb86o1C4dqm UEoTKPvQED1koxAjj63hVlRg2DDLCNnlo7Hx0zA/203ENitf9xEqkF6QkwmfMcfMxada 6Zy8Yc7fpRua1tWoegXdxd7rjRd6o5QL2OGi8XHhzWuzA8EXQOl4l4efLfw92fgxF/dt yKsaDybVaHVdB5EAPiTJ8rwQpZ/gjgLwbdTDetI5FDEodWwEen2oCI6DJ5Rl6HLzjNCA r8BA== 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 p2si3140603edx.131.2021.06.04.09.48.32; Fri, 04 Jun 2021 09:48:56 -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 S230305AbhFDQqu (ORCPT + 99 others); Fri, 4 Jun 2021 12:46:50 -0400 Received: from gate.crashing.org ([63.228.1.57]:35910 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229690AbhFDQqu (ORCPT ); Fri, 4 Jun 2021 12:46:50 -0400 Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id 154GemFV026057; Fri, 4 Jun 2021 11:40:48 -0500 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id 154GelkX026054; Fri, 4 Jun 2021 11:40:47 -0500 X-Authentication-Warning: gate.crashing.org: segher set sender to segher@kernel.crashing.org using -f Date: Fri, 4 Jun 2021 11:40:47 -0500 From: Segher Boessenkool To: Peter Zijlstra Cc: Linus Torvalds , will@kernel.org, paulmck@kernel.org, stern@rowland.harvard.edu, parri.andrea@gmail.com, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, j.alglave@ucl.ac.uk, luc.maranget@inria.fr, akiyks@gmail.com, linux-kernel@vger.kernel.org, linux-toolchains@vger.kernel.org, linux-arch@vger.kernel.org Subject: Re: [RFC] LKMM: Add volatile_if() Message-ID: <20210604164047.GH18427@gate.crashing.org> References: <20210604153518.GD18427@gate.crashing.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 04, 2021 at 06:10:55PM +0200, Peter Zijlstra wrote: > On Fri, Jun 04, 2021 at 10:35:18AM -0500, Segher Boessenkool wrote: > > On Fri, Jun 04, 2021 at 01:44:37PM +0200, Peter Zijlstra wrote: > > > On naming (sorry Paul for forgetting that in the initial mail); while I > > > think using the volatile qualifier for the language feature (can we haz > > > plz, kthxbai) makes perfect sense, Paul felt that we might use a > > > 'better' name for the kernel use, ctrl_dep_if() was proposed. > > > > In standard C statements do not have qualifiers. Unless you can > > convince the ISO C committee to have them on "if", you will have a very > > hard time convincing any serious compiler to do this. > > While some people like talking to the Committee, I would much rather > explore language extensions with the compiler communities. Such > extensions can then make their way into the Committee once they show > their usefulness. My point is that you ask compiler developers to paint themselves into a corner if you ask them to change such fundamental C syntax. > If you have another proposal on how to express this; one you'd rather > see implemented, I'm all ears. I would love to see something that meshes well with the rest of C. But there is no 1-1 translation from C code to machine code (not in either direction), so anything that more or less depends on that will always be awkward. If you can actually express the dependency in your source code that will get us 95% to where we want to be. > Data dependencies, control dependencies and address dependencies, C > doesn't really like them, we rely on them. It would be awesome if we can > fix this. Yes. The problem is that C is a high-level language. All C semantics are expressed on a an "as-if" level, never as "do this, then that" -- well, of course that *is* what it says, it's an imperative language just like most, but that is just how you *think* about things on a conceptual level, there is nothing that says the machine code has to do the same thing in the same order as you wrote! Segher