From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw0-f170.google.com (mail-yw0-f170.google.com [209.85.161.170]) by dpdk.org (Postfix) with ESMTP id 7428D2BE0 for ; Thu, 26 May 2016 03:37:11 +0200 (CEST) Received: by mail-yw0-f170.google.com with SMTP id c127so63541780ywb.1 for ; Wed, 25 May 2016 18:37:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=6+4wQu1klbq+Q7bCeTr/+B7mMicEzkOKwGAkvHV52eI=; b=ZowYox52bHN7mGcPpYcTd/5pTtLkAOF2T0Jn1QQmoDt+tX67Ds44TefWEKo12uMviY 71/yUXhqEnKRj4rtnAvkb0xjKLieU//DADbq3m7SUIsdf/J8bxdn9fHy9c1Q4/jNf2pc nqWv4Cd0L68bLacVkBU6ZlB1/LtEfgls6LQFs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=6+4wQu1klbq+Q7bCeTr/+B7mMicEzkOKwGAkvHV52eI=; b=Zc8dxJ4e3RaoTTvRnJTiKJNyub8moM7dVjLw+CC42NgteZFRJFWxBC9hE9FXIVRxB1 QLHgC+/1CderKn8bJk+pgvMVsLsGfpfuYvRfe4y0+E3Zm/XufF32FLvsBnExmyhHjNsq Ji5uTqbJRVACIcedAbdx4RwkSK+nt47r0C14iroeofGZ1USoAdYhyWZiu4WqazVnpB5F cbaRrn03x9gqH8eeDFx7OIq/xTq+rtl8nwOfEuSq73JD45JMKwt0b0GuNqznHUDY91W9 DOeRCRVQVSPUiVMl2SA9e1YBgRk3SSvtloi9IKktmYFqi8cAC843/pEnntgkCDA9T7ud LLtg== X-Gm-Message-State: ALyK8tJ68Gd3EYHbPLN5vERO/zswLA8fDkP9FYBqIiGJQTQ16suM954GXlkjVe/+jrWTR9OpSM8WmArYayXIZxx9 MIME-Version: 1.0 X-Received: by 10.13.210.68 with SMTP id u65mr4842056ywd.112.1464226630780; Wed, 25 May 2016 18:37:10 -0700 (PDT) Received: by 10.37.223.133 with HTTP; Wed, 25 May 2016 18:37:10 -0700 (PDT) In-Reply-To: <20160525122935.GA30670@localhost.localdomain> References: <1461159902-16680-1-git-send-email-jianbo.liu@linaro.org> <1462515948-23906-1-git-send-email-jianbo.liu@linaro.org> <1462515948-23906-3-git-send-email-jianbo.liu@linaro.org> <20160525122935.GA30670@localhost.localdomain> Date: Thu, 26 May 2016 09:37:10 +0800 Message-ID: From: Jianbo Liu To: Jerin Jacob Cc: dev@dpdk.org, Bruce Richardson , "Zhang, Helin" , "Ananyev, Konstantin" Content-Type: text/plain; charset=UTF-8 Subject: Re: [dpdk-dev] [PATCH v3 2/4] ixgbe: implement vector PMD for arm architecture 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: Thu, 26 May 2016 01:37:11 -0000 On 25 May 2016 at 20:29, Jerin Jacob wrote: > On Fri, May 06, 2016 at 11:55:46AM +0530, Jianbo Liu wrote: >> use ARM NEON intrinsic to implement ixgbe vPMD >> >> Signed-off-by: Jianbo Liu >> --- >> drivers/net/ixgbe/Makefile | 4 + >> drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 561 ++++++++++++++++++++++++++++++++ >> 2 files changed, 565 insertions(+) >> create mode 100644 drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c >> + /* Read desc statuses backwards to avoid race condition */ >> + /* A.1 load 4 pkts desc */ >> + descs[3] = vld1q_u64((uint64_t *)(rxdp + 3)); >> + rte_rmb(); > > Any specific reason to add rte_rmb() here, If there is no performance > drop then it makes sense to add before descs[3] uses it.i.e > at rte_compiler_barrier() place in x86 code. > To avoid desc statuses inconsistent since they are read backwards. >> + >> + /* B.2 copy 2 mbuf point into rx_pkts */ >> + vst1q_u64((uint64_t *)&rx_pkts[pos], mbp1); >> + >> + /* B.1 load 1 mbuf point */ >> + mbp2 = vld1q_u64((uint64_t *)&sw_ring[pos + 2]); >> + >> + descs[2] = vld1q_u64((uint64_t *)(rxdp + 2)); >> + /* B.1 load 2 mbuf point */ >> + descs[1] = vld1q_u64((uint64_t *)(rxdp + 1)); >> + descs[0] = vld1q_u64((uint64_t *)(rxdp)); >> + >> + /* B.2 copy 2 mbuf point into rx_pkts */ >> + vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2); >> + >> + if (split_packet) { >> + rte_prefetch_non_temporal(&rx_pkts[pos]->cacheline1); >> + rte_prefetch_non_temporal(&rx_pkts[pos+1]->cacheline1); >> + rte_prefetch_non_temporal(&rx_pkts[pos+2]->cacheline1); >> + rte_prefetch_non_temporal(&rx_pkts[pos+3]->cacheline1); > > replace with rte_mbuf_prefetch_part2 or equivalent > rte_mbuf_prefetch_part2 is new functions after this patchset, so it's better to submit a new patch as Bruce said.