From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by dpdk.org (Postfix) with ESMTP id 92C9D1B236 for ; Tue, 31 Oct 2017 14:21:58 +0100 (CET) Received: by mail-wm0-f41.google.com with SMTP id y80so15654875wmd.0 for ; Tue, 31 Oct 2017 06:21:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=T7bR4zJcG71e6xF1xgrnCeJXDy+k5XyQXH/nLz3lZFs=; b=ZnbWknsCwUAYdzSeJuwp4XSLhereBkADL8kgpc39emGH61VJUBAYZT/yCOqbx2nuR0 QdnLhAFCjPJyJno42b8ktW6QOV4Kvm1eQXdPXE19o8l8qG7dxsR+cUItwykQzUjz5gvs 52f98CsdeilKfzwdCmVtSBB4zekFy/vsZOn1OO0uZ5mTPQ0/L+qCqdAjUhokOJW5Pzw5 Gw/SFchzSDCvkc98usmEU9xw1GDKnnaTZRGJKY97yfIhKibTNtxrqz3gLdM3MM5rpHCy Aobh/GfzotSDDdt/MRuqqmVWQPhQg8SZHls1AErgzCTBR+MxQLJmUPflgLxG/BPVbeDP kaMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=T7bR4zJcG71e6xF1xgrnCeJXDy+k5XyQXH/nLz3lZFs=; b=B9qWv4qJgxL+BwKrYKiKkPZ9ZJaQaZeOHC5Jj4ZD+DuIMahh0sFhK3Wxizaz+8T3ei 6+IA/We2iaCKNJPAEDN8bHqEdCFeDffRBuX3N6k526+Ek0KkjePS0p3TfgBQZJgfD0Gp lpOzFFb5lCIhb/G6UsHIDfKw9Zp8dhRrhvwjj06mnjYRP8nwHl/VWaK0o5oI5F6aDuiY 1VZ0rta9O/X2DAS/ARHL+1XCkclQus5qCBJKVtlEFg/rcwFNP+1qCdGyf0pwQuxx0z1+ /DKgarPRNXlaGFQqSXLaW8ESN9KmB7huf+fHfnyEf3VdkG/3P0t32uhzwnmu7UGppl1R sgBQ== X-Gm-Message-State: AMCzsaUy0jmpSH1fmKg0eL7/5gCSyvrhkBy6IWF9gFTrNGH913UZVy1z HOvvs0tfVCCF62YerehN8EflVw== X-Google-Smtp-Source: ABhQp+S/tFNXgyE0VSpcnDe1dGJ1p0jDBrYiI5tXeUpeCWA2WlYZcCxOpy2+tKnCtxgYTA5HcbIwDg== X-Received: by 10.28.10.195 with SMTP id 186mr1784501wmk.136.1509456118108; Tue, 31 Oct 2017 06:21:58 -0700 (PDT) Received: from 6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id c37sm4541150wra.73.2017.10.31.06.21.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 31 Oct 2017 06:21:57 -0700 (PDT) Date: Tue, 31 Oct 2017 14:21:45 +0100 From: Adrien Mazarguil To: Matan Azrad Cc: "dev@dpdk.org" , Ophir Munk Message-ID: <20171031132145.GO26782@6wind.com> References: <1508768520-4810-1-git-send-email-ophirmu@mellanox.com> <1509358049-18854-1-git-send-email-matan@mellanox.com> <1509358049-18854-7-git-send-email-matan@mellanox.com> <20171030142350.GC26782@6wind.com> <20171031101722.GL26782@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [dpdk-dev] [PATCH v3 6/7] net/mlx4: mitigate Tx path memory barriers X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Oct 2017 13:21:58 -0000 Hi Matan, On Tue, Oct 31, 2017 at 11:35:29AM +0000, Matan Azrad wrote: > > -----Original Message----- > > From: Adrien Mazarguil [mailto:adrien.mazarguil@6wind.com] > > Sent: Tuesday, October 31, 2017 12:17 PM > > To: Matan Azrad > > Cc: dev@dpdk.org; Ophir Munk > > Subject: Re: [PATCH v3 6/7] net/mlx4: mitigate Tx path memory barriers > > > > Hi Matan, > > > > On Mon, Oct 30, 2017 at 07:47:20PM +0000, Matan Azrad wrote: > > > Hi Adrien > > > > > > > -----Original Message----- > > > > From: Adrien Mazarguil [mailto:adrien.mazarguil@6wind.com] > > > > Sent: Monday, October 30, 2017 4:24 PM > > > > To: Matan Azrad > > > > Cc: dev@dpdk.org; Ophir Munk > > > > Subject: Re: [PATCH v3 6/7] net/mlx4: mitigate Tx path memory > > > > barriers > > > > > > > > On Mon, Oct 30, 2017 at 10:07:28AM +0000, Matan Azrad wrote: > > > > > Replace most of the memory barriers by compiler barriers since > > > > > they are all targeted to the DRAM; This improves code efficiency > > > > > for systems which force store order between different addresses. > > > > > > > > > > Only the doorbell record store should be protected by memory > > > > > barrier since it is targeted to the PCI memory domain. > > > > > > > > > > Limit pre byte count store compiler barrier for systems with cache > > > > > line size smaller than 64B (TXBB size). > > > > > > > > > > Signed-off-by: Matan Azrad > > > > > cq->cons_index = cons_index; > > > > > *cq->set_ci_db = rte_cpu_to_be_32(cq->cons_index & > > > > MLX4_CQ_DB_CI_MASK); > > > > > - rte_wmb(); > > > > > + rte_io_wmb(); > > > > > > > > This one could be removed entirely as well, which is more or less > > > > what the move to a compiler barrier does. Nothing in subsequent code > > > > depends on this doorbell being written, so this can piggy back on > > > > any subsequent rte_wmb(). > > > > > > Yes, you right, probably this code was taken from multi thread > > implementation. > > > > > > > > On the other hand in my opinion a barrier (compiler or otherwise) > > > > might be needed before the doorbell write, to make clear it cannot > > > > somehow be done earlier in case something attempts to optimize it > > away. > > > > > > > I think we can remove it entirely (compiler can't optimize the ci_db store > > since in depends in previous code (cons_index). > > > > Right, however you may still run into issues if the compiler determines the > > final cons_index value by looking at the loop and decides to store it before > > entering/leaving it. That's the kind of problematic optimization I was thinking > > of. > > > > The barrier in that sense is just to assert the order of seemingly unrelated > > load/stores. > > I think that If I left the rte_io_rmb after CQE owner check we can earn both: > 1. The concern of read ordering while reading the owner before using CQE. > 2. The ci_db concern: the compiler must read the last CQE(which is not valid and we have no more stamp to do) before it knows the last value of cons_index. > So we can remove entirely this rte_io_wmb in completion function. > What do you think? That's right, this means there's a barrier before the doorbell write in any case, OK then. Just make sure cq->set_ci_db is volatile in a prior "fix" commit as described in my previous suggestion, otherwise the remaining barriers won't guarantee much. Thanks. -- Adrien Mazarguil 6WIND