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=-2.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS,USER_AGENT_MUTT autolearn=ham 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 7C628C43387 for ; Mon, 7 Jan 2019 09:47:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 44EAA20859 for ; Mon, 7 Jan 2019 09:47:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="hcuul/Vd" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726654AbfAGJrQ (ORCPT ); Mon, 7 Jan 2019 04:47:16 -0500 Received: from merlin.infradead.org ([205.233.59.134]:35072 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726402AbfAGJrQ (ORCPT ); Mon, 7 Jan 2019 04:47:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=owmLCz674NsQ4X6zYu+dDxoNvJMYgBNm8s6qAzHY3Gk=; b=hcuul/VdcJfvZ+HF+Gdr8duBV9 ke+A8rJux1Pd+7Z+uETTQiLDCpJ2l0WUMD1waB/dvl7hQAzDYWl1jh7CIxqieU1PgWKTGHaqEzmAc 4b6DeMASCB6pMUO/4zKIP+Cn4PXOPCUMsf/4UM7clHh5085s8EI5XTK98wU526CUVKrv7I6x6Wlyp KeiNU7p35dvCUV1Iis7H2feA2Qtm58VTxXuM6UlSPI/sOvseBGUJ7YZvdKdlP3LMTFib7vEeDvgWX sgW09WCIlYpGbxSl615+AA7JXBRcNgJWJQgGTylY4bQURldEXzmxEy4wtEL+8LLEq1L1QR/0WBl4z KEIk6QkA==; Received: from [185.88.64.153] (helo=worktop.programming.kicks-ass.net) by merlin.infradead.org with esmtpsa (Exim 4.90_1 #2 (Red Hat Linux)) id 1ggRUJ-0002zr-48; Mon, 07 Jan 2019 09:46:27 +0000 Received: by worktop.programming.kicks-ass.net (Postfix, from userid 1000) id A9696983877; Mon, 7 Jan 2019 10:46:10 +0100 (CET) Date: Mon, 7 Jan 2019 10:46:10 +0100 From: Peter Zijlstra To: "Michael S. Tsirkin" Cc: Jason Wang , linux-kernel@vger.kernel.org, Alan Stern , Andrea Parri , Will Deacon , Boqun Feng , Nicholas Piggin , David Howells , Jade Alglave , Luc Maranget , "Paul E. McKenney" , Akira Yokosawa , Daniel Lustig , linux-arch@vger.kernel.org, netdev@vger.kernel.org, virtualization@lists.linux-foundation.org, Jonathan Corbet , Richard Henderson , Ivan Kokshaysky , Matt Turner , Arnd Bergmann , Luc Van Oostenryck , linux-doc@vger.kernel.org, linux-alpha@vger.kernel.org, linux-sparse@vger.kernel.org Subject: Re: [PATCH RFC 3/4] barriers: convert a control to a data dependency Message-ID: <20190107094610.GA2861@worktop.programming.kicks-ass.net> References: <20190102205715.14054-1-mst@redhat.com> <20190102205715.14054-4-mst@redhat.com> <86023cbe-d1ae-a0d6-7b75-26556f1a0c1f@redhat.com> <20190106231756-mutt-send-email-mst@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190106231756-mutt-send-email-mst@kernel.org> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Jan 06, 2019 at 11:23:07PM -0500, Michael S. Tsirkin wrote: > On Mon, Jan 07, 2019 at 11:58:23AM +0800, Jason Wang wrote: > > On 2019/1/3 上午4:57, Michael S. Tsirkin wrote: > > > +#if defined(COMPILER_HAS_OPTIMIZER_HIDE_VAR) && \ > > > + !defined(ARCH_NEEDS_READ_BARRIER_DEPENDS) > > > + > > > +#define dependent_ptr_mb(ptr, val) ({ \ > > > + long dependent_ptr_mb_val = (long)(val); \ > > > + long dependent_ptr_mb_ptr = (long)(ptr) - dependent_ptr_mb_val; \ > > > + \ > > > + BUILD_BUG_ON(sizeof(val) > sizeof(long)); \ > > > + OPTIMIZER_HIDE_VAR(dependent_ptr_mb_val); \ > > > + (typeof(ptr))(dependent_ptr_mb_ptr + dependent_ptr_mb_val); \ > > > +}) > > > + > > > +#else > > > + > > > +#define dependent_ptr_mb(ptr, val) ({ mb(); (ptr); }) > > > > > > So for the example of patch 4, we'd better fall back to rmb() or need a > > dependent_ptr_rmb()? > > > > Thanks > > You mean for strongly ordered architectures like Intel? > Yes, maybe it makes sense to have dependent_ptr_smp_rmb, > dependent_ptr_dma_rmb and dependent_ptr_virt_rmb. > > mb variant is unused right now so I'll remove it. How about naming the thing: dependent_ptr() ? That is without any (r)mb implications at all. The address dependency is strictly weaker than an rmb in that it will only order the two loads in qestion and not, like rmb, any prior to any later load. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: [PATCH RFC 3/4] barriers: convert a control to a data dependency Date: Mon, 7 Jan 2019 10:46:10 +0100 Message-ID: <20190107094610.GA2861@worktop.programming.kicks-ass.net> References: <20190102205715.14054-1-mst@redhat.com> <20190102205715.14054-4-mst@redhat.com> <86023cbe-d1ae-a0d6-7b75-26556f1a0c1f@redhat.com> <20190106231756-mutt-send-email-mst@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Andrea Parri , linux-doc@vger.kernel.org, Akira Yokosawa , Will Deacon , virtualization@lists.linux-foundation.org, David Howells , linux-arch@vger.kernel.org, Jonathan Corbet , linux-sparse@vger.kernel.org, Alan Stern , Matt Turner , "Paul E. McKenney" , Boqun Feng , Arnd Bergmann , Daniel Lustig , Nicholas Piggin , Ivan Kokshaysky , Luc Maranget , Richard Henderson , Jade Alglave , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-alpha@vger.kernel.org, Luc Van Oostenryck To: "Michael S. Tsirkin" Return-path: Content-Disposition: inline In-Reply-To: <20190106231756-mutt-send-email-mst@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org List-Id: netdev.vger.kernel.org T24gU3VuLCBKYW4gMDYsIDIwMTkgYXQgMTE6MjM6MDdQTSAtMDUwMCwgTWljaGFlbCBTLiBUc2ly a2luIHdyb3RlOgo+IE9uIE1vbiwgSmFuIDA3LCAyMDE5IGF0IDExOjU4OjIzQU0gKzA4MDAsIEph c29uIFdhbmcgd3JvdGU6Cj4gPiBPbiAyMDE5LzEvMyDkuIrljYg0OjU3LCBNaWNoYWVsIFMuIFRz aXJraW4gd3JvdGU6Cgo+ID4gPiArI2lmIGRlZmluZWQoQ09NUElMRVJfSEFTX09QVElNSVpFUl9I SURFX1ZBUikgJiYgXAo+ID4gPiArCSFkZWZpbmVkKEFSQ0hfTkVFRFNfUkVBRF9CQVJSSUVSX0RF UEVORFMpCj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgZGVwZW5kZW50X3B0cl9tYihwdHIsIHZhbCkg KHsJCQkJCVwKPiA+ID4gKwlsb25nIGRlcGVuZGVudF9wdHJfbWJfdmFsID0gKGxvbmcpKHZhbCk7 CQkJXAo+ID4gPiArCWxvbmcgZGVwZW5kZW50X3B0cl9tYl9wdHIgPSAobG9uZykocHRyKSAtIGRl cGVuZGVudF9wdHJfbWJfdmFsOwlcCj4gPiA+ICsJCQkJCQkJCQlcCj4gPiA+ICsJQlVJTERfQlVH X09OKHNpemVvZih2YWwpID4gc2l6ZW9mKGxvbmcpKTsJCQlcCj4gPiA+ICsJT1BUSU1JWkVSX0hJ REVfVkFSKGRlcGVuZGVudF9wdHJfbWJfdmFsKTsJCQlcCj4gPiA+ICsJKHR5cGVvZihwdHIpKShk ZXBlbmRlbnRfcHRyX21iX3B0ciArIGRlcGVuZGVudF9wdHJfbWJfdmFsKTsJXAo+ID4gPiArfSkK PiA+ID4gKwo+ID4gPiArI2Vsc2UKPiA+ID4gKwo+ID4gPiArI2RlZmluZSBkZXBlbmRlbnRfcHRy X21iKHB0ciwgdmFsKSAoeyBtYigpOyAocHRyKTsgfSkKPiA+IAo+ID4gCj4gPiBTbyBmb3IgdGhl IGV4YW1wbGUgb2YgcGF0Y2ggNCwgd2UnZCBiZXR0ZXIgZmFsbCBiYWNrIHRvIHJtYigpIG9yIG5l ZWQgYQo+ID4gZGVwZW5kZW50X3B0cl9ybWIoKT8KPiA+IAo+ID4gVGhhbmtzCj4gCj4gWW91IG1l YW4gZm9yIHN0cm9uZ2x5IG9yZGVyZWQgYXJjaGl0ZWN0dXJlcyBsaWtlIEludGVsPwo+IFllcywg bWF5YmUgaXQgbWFrZXMgc2Vuc2UgdG8gaGF2ZSBkZXBlbmRlbnRfcHRyX3NtcF9ybWIsCj4gZGVw ZW5kZW50X3B0cl9kbWFfcm1iIGFuZCBkZXBlbmRlbnRfcHRyX3ZpcnRfcm1iLgo+IAo+IG1iIHZh cmlhbnQgaXMgdW51c2VkIHJpZ2h0IG5vdyBzbyBJJ2xsIHJlbW92ZSBpdC4KCkhvdyBhYm91dCBu YW1pbmcgdGhlIHRoaW5nOiBkZXBlbmRlbnRfcHRyKCkgPyBUaGF0IGlzIHdpdGhvdXQgYW55IChy KW1iCmltcGxpY2F0aW9ucyBhdCBhbGwuIFRoZSBhZGRyZXNzIGRlcGVuZGVuY3kgaXMgc3RyaWN0 bHkgd2Vha2VyIHRoYW4gYW4Kcm1iIGluIHRoYXQgaXQgd2lsbCBvbmx5IG9yZGVyIHRoZSB0d28g bG9hZHMgaW4gcWVzdGlvbiBhbmQgbm90LCBsaWtlCnJtYiwgYW55IHByaW9yIHRvIGFueSBsYXRl ciBsb2FkLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpW aXJ0dWFsaXphdGlvbiBtYWlsaW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91 bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlz dGluZm8vdmlydHVhbGl6YXRpb24=