From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f51.google.com (mail-wg0-f51.google.com [74.125.82.51]) by dpdk.org (Postfix) with ESMTP id 04EAE68A5 for ; Fri, 24 Jan 2014 16:58:14 +0100 (CET) Received: by mail-wg0-f51.google.com with SMTP id z12so3200114wgg.30 for ; Fri, 24 Jan 2014 07:59:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=nEqUjiLa/QEk4QvZF/YcYdqh7H7wiVoyyFXwnvKnoP4=; b=L/WrzfNOZdf8RetvrFcPVjza897upbC8mm8GjE7q4G3P7Qqi74giIVLCQ0GnIfxjJK WjCZcVPTsNPuULFXhFEmj77WdWa8axK1f2SiFPSrEU4zGcuUuTPKq1+4wluVgypJCjAn tPKMN3b9Bx7Fu9JE62hsFa02SnSsfZRmhwWKovpaL8i2f7HXJV9ROp/xzVfrLbzNsday 3+HEzb4RiolQLkkMq40jH7dzevbH8N1DWy626bPVcAPA8CUNzslbBFsaQkWzl4yDx/+G iXrVVmqJ161xzqafGkSQqqJFuET4MKYUuCWsjUz2Q4JYgSP8toFjJ4634eTvaOuHRk/j JpVQ== X-Gm-Message-State: ALoCoQlJoBkCSZQm4+DV+aNKYGgtAZkQPI9fWWq6FcISLcFT6LyKI36YTRe5ku2qEUIpnhOIKaBj X-Received: by 10.194.61.84 with SMTP id n20mr1897953wjr.61.1390579172113; Fri, 24 Jan 2014 07:59:32 -0800 (PST) Received: from glumotte.dev.6wind.com (6wind.net2.nerim.net. [213.41.180.237]) by mx.google.com with ESMTPSA id ea4sm8024446wib.7.2014.01.24.07.59.30 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 Jan 2014 07:59:31 -0800 (PST) From: Olivier Matz To: dev@dpdk.org Date: Fri, 24 Jan 2014 16:59:17 +0100 Message-Id: <1390579157-23890-1-git-send-email-olivier.matz@6wind.com> X-Mailer: git-send-email 1.8.4.rc3 Subject: [dpdk-dev] [memnic PATCH] pmd: use memory barrier function instead of asm volatile X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Jan 2014 15:58:15 -0000 Use the DPDK specific function rte_mb() instead of the GCC statement asm volatile ("" ::: "memory"). Signed-off-by: Olivier Matz --- common/memnic.h | 2 -- pmd/pmd_memnic.c | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/common/memnic.h b/common/memnic.h index 6ff38a0..fdc9fa3 100644 --- a/common/memnic.h +++ b/common/memnic.h @@ -123,8 +123,6 @@ struct memnic_area { /* for userspace */ #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x)) -#define barrier() do { asm volatile("": : :"memory"); } while (0) - static inline uint32_t cmpxchg(uint32_t *dst, uint32_t old, uint32_t new) { volatile uint32_t *ptr = (volatile uint32_t *)dst; diff --git a/pmd/pmd_memnic.c b/pmd/pmd_memnic.c index bc01746..1586222 100644 --- a/pmd/pmd_memnic.c +++ b/pmd/pmd_memnic.c @@ -100,7 +100,7 @@ static int memnic_dev_start(struct rte_eth_dev *dev) /* invalidate */ adapter->nic->hdr.valid = 0; - barrier(); + rte_mb(); /* reset */ adapter->nic->hdr.reset = 1; /* no need to wait here */ @@ -242,7 +242,7 @@ static uint16_t memnic_recv_pkts(void *rx_queue, mb->pkt.data_len = p->len; rx_pkts[nr] = mb; - barrier(); + rte_mb(); p->status = MEMNIC_PKT_ST_FREE; if (++idx >= MEMNIC_NR_PACKET) @@ -290,7 +290,7 @@ retry: rte_memcpy(p->data, rte_pktmbuf_mtod(tx_pkts[nr], void *), len); - barrier(); + rte_mb(); p->status = MEMNIC_PKT_ST_FILLED; rte_pktmbuf_free(tx_pkts[nr]); -- 1.8.4.rc3