From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <yuanhan.liu@linux.intel.com>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by dpdk.org (Postfix) with ESMTP id 2023B2FDD
 for <dev@dpdk.org>; Fri, 18 Mar 2016 13:39:38 +0100 (CET)
Received: from fmsmga004.fm.intel.com ([10.253.24.48])
 by fmsmga102.fm.intel.com with ESMTP; 18 Mar 2016 05:39:38 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.24,355,1455004800"; d="scan'208";a="68961706"
Received: from yliu-dev.sh.intel.com (HELO yliu-dev) ([10.239.66.49])
 by fmsmga004.fm.intel.com with ESMTP; 18 Mar 2016 05:39:37 -0700
Date: Fri, 18 Mar 2016 20:41:02 +0800
From: Yuanhan Liu <yuanhan.liu@linux.intel.com>
To: Ilya Maximets <i.maximets@samsung.com>
Cc: dev@dpdk.org, Huawei Xie <huawei.xie@intel.com>,
 Dyasly Sergey <s.dyasly@samsung.com>
Message-ID: <20160318124102.GV979@yliu-dev.sh.intel.com>
References: <1456314438-4021-2-git-send-email-i.maximets@samsung.com>
 <1458303833-14815-1-git-send-email-i.maximets@samsung.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1458303833-14815-1-git-send-email-i.maximets@samsung.com>
User-Agent: Mutt/1.5.23 (2014-03-12)
Subject: Re: [dpdk-dev] [PATCH v4] vhost: use SMP barriers instead of
	compiler ones.
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 18 Mar 2016 12:39:39 -0000

On Fri, Mar 18, 2016 at 03:23:53PM +0300, Ilya Maximets wrote:
> Since commit 4c02e453cc62 ("eal: introduce SMP memory barriers") virtio
> uses architecture dependent SMP barriers. vHost should use them too.
> 
> Fixes: 4c02e453cc62 ("eal: introduce SMP memory barriers")
> 
> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
> ---
>  lib/librte_vhost/vhost_rxtx.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
> index b4da665..859c669 100644
> --- a/lib/librte_vhost/vhost_rxtx.c
> +++ b/lib/librte_vhost/vhost_rxtx.c
> @@ -315,7 +315,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
>  			rte_prefetch0(&vq->desc[desc_indexes[i+1]]);
>  	}
>  
> -	rte_compiler_barrier();
> +	rte_smp_wmb();
>  
>  	/* Wait until it's our turn to add our buffer to the used ring. */
>  	while (unlikely(vq->last_used_idx != res_start_idx))
> @@ -565,7 +565,7 @@ virtio_dev_merge_rx(struct virtio_net *dev, uint16_t queue_id,
>  
>  		nr_used = copy_mbuf_to_desc_mergeable(dev, vq, start, end,
>  						      pkts[pkt_idx]);
> -		rte_compiler_barrier();
> +		rte_smp_wmb();
>  
>  		/*
>  		 * Wait until it's our turn to add our buffer
> @@ -923,7 +923,8 @@ rte_vhost_dequeue_burst(struct virtio_net *dev, uint16_t queue_id,
>  				sizeof(vq->used->ring[used_idx]));
>  	}
>  
> -	rte_compiler_barrier();
> +	rte_smp_wmb();
> +	rte_smp_rmb();

rte_smp_mb?

	--yliu