Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1993229imm; Fri, 7 Sep 2018 09:11:53 -0700 (PDT) X-Google-Smtp-Source: ANB0VdbCuFeaKR1uHvDE4LUJrdQa07MniKPwh+fPQrW238N8IFwohpCUBZzySt66/B7rZUFxBE/R X-Received: by 2002:a62:6d02:: with SMTP id i2-v6mr9478487pfc.218.1536336713724; Fri, 07 Sep 2018 09:11:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536336713; cv=none; d=google.com; s=arc-20160816; b=t3WDIHwxro9PTKfXuom/zVljyubl+mtGSGUOKoWTvZ6KCZxscavl4xTY0WasVOIyt7 kXSMKLApovwThC4rz7zU31qIx0aMIKyxBiOF5APqK7dgFS0NuFpvt13aQ6Lo3YvRjMo+ w2yMy65KWJWLwSMxHlcyhGFSEoX0S7i6B6uUkaFsSC/gFtstjvJfc8m3in3g9xnSfElE hv+3DOPxofOYceWjSfJPbbv1YqnnISAWaC4vR+5YQBv04oeqyQbfcu7UyRhqWiBcLdUU yXjst+sdKsdY/I+OsBh1HAY/cXCTY4LLvb3t2M9odxRo0CLeevxNEC2rHMU2K+jU6+k2 /YqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=S7TV94E09hrnzwkIHzCMuU492i2BbEJpaNCd0RDTJhc=; b=yHOOSbR4lzDcgy9CJHYTirGKApIzXx0+gO+8eI9ILzzw+xkRGplXES4vZydOmTMIPZ 1POvx2AVPh4Nb8dTq6lRwolYsVGijfW861TNeKngEhUEGJ8OwUj+kkBgB3V6xgAbC6n2 MTqMaY3CFgWOInnX/915VGbunFQ0nU8ITzCVtLf2e6x0dWZJIDlhD8DIVNhpWtaaAljG Z8j9jijLKF/wJPWumTszREfpThoPr1WeVnVcBUpxrXtYYNpQSx6MUMjKi2jH+rKK1vnr Cs0jM5h5mTOaruL8o8mLIVvZkdtz2unZK0yary9sOdF94Zn+Mv6FAWt14O6PgMu1cw9c hoQA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f12-v6si8928248pgg.653.2018.09.07.09.11.38; Fri, 07 Sep 2018 09:11:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728145AbeIGUvM (ORCPT + 99 others); Fri, 7 Sep 2018 16:51:12 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:34212 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728086AbeIGUvL (ORCPT ); Fri, 7 Sep 2018 16:51:11 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A084E18A; Fri, 7 Sep 2018 09:09:35 -0700 (PDT) Received: from edgewater-inn.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 703F73F5BC; Fri, 7 Sep 2018 09:09:35 -0700 (PDT) Received: by edgewater-inn.cambridge.arm.com (Postfix, from userid 1000) id 9E4611AE37BD; Fri, 7 Sep 2018 17:09:50 +0100 (BST) Date: Fri, 7 Sep 2018 17:09:50 +0100 From: Will Deacon To: Alan Stern Cc: Andrea Parri , Andrea Parri , "Paul E. McKenney" , Kernel development list , linux-arch@vger.kernel.org, mingo@kernel.org, peterz@infradead.org, boqun.feng@gmail.com, npiggin@gmail.com, dhowells@redhat.com, Jade Alglave , Luc Maranget , akiyks@gmail.com, Palmer Dabbelt , Daniel Lustig Subject: Re: [PATCH RFC LKMM 1/7] tools/memory-model: Add extra ordering for locks and remove it for ordinary release/acquire Message-ID: <20180907160950.GH12788@arm.com> References: <20180906093655.GA9653@andrea> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 07, 2018 at 12:00:19PM -0400, Alan Stern wrote: > On Thu, 6 Sep 2018, Andrea Parri wrote: > > > > Have you noticed any part of the generic code that relies on ordinary > > > acquire-release (rather than atomic RMW acquire-release) in order to > > > implement locking constructs? > > > > There are several places in code where the "lock-acquire" seems to be > > provided by an atomic_cond_read_acquire/smp_cond_load_acquire: I have > > mentioned one in qspinlock in this thread; qrwlock and mcs_spinlock > > provide other examples (grep for the primitives...). > > > > As long as we don't consider these primitive as RMW (which would seem > > odd...) or as acquire for which "most people expect strong ordering" > > (see above), these provides other examples for the _gap_ I mentioned. > > Okay, now I understand your objection. It does appear that on RISC-V, > if nowhere else, the current implementations of qspinlock, qrwlock, > etc. will not provide "RCtso" ordering. > > The discussions surrounding this topic have been so lengthy and > confusing that I have lost track of any comments Palmer or Daniel may > have made concerning this potential problem. > > One possible resolution would be to define smp_cond_load_acquire() > specially on RISC-V so that it provided the same ordering guarantees as > RMW-acquire. (Plus adding a comment in the asm-generic/barrier.h > pointing out the necessity for the stronger guarantee on all > architectures.) > > Another would be to replace the usages of atomic/smp_cond_load_acquire > in the locking constructs with a new function that would otherwise be > the same but would provide the ordering guarantee we want. > > Do you think either of these would be an adequate fix? I didn't think RISC-V used qspinlock or qrwlock, so I'm not sure there's actually anything to fix, is there? Will