From patchwork Tue Jun 23 06:58:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruifeng Wang X-Patchwork-Id: 72002 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id F04E1A0350; Tue, 23 Jun 2020 08:59:42 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CA61D1D574; Tue, 23 Jun 2020 08:59:42 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id DBE091D54F; Tue, 23 Jun 2020 08:59:41 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6085431B; Mon, 22 Jun 2020 23:59:41 -0700 (PDT) Received: from net-arm-thunderx2-02.shanghai.arm.com (net-arm-thunderx2-02.shanghai.arm.com [10.169.41.165]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id BCAAE3F71E; Mon, 22 Jun 2020 23:59:38 -0700 (PDT) From: Ruifeng Wang To: Jan Viktorin , Ruifeng Wang Cc: dev@dpdk.org, ferruh.yigit@intel.com, honnappa.nagarahalli@arm.com, juraj.linkes@pantheon.tech, nd@arm.com, stable@dpdk.org Date: Tue, 23 Jun 2020 14:58:53 +0800 Message-Id: <20200623065856.41189-2-ruifeng.wang@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200623065856.41189-1-ruifeng.wang@arm.com> References: <20200424065053.119885-1-ruifeng.wang@arm.com> <20200623065856.41189-1-ruifeng.wang@arm.com> Subject: [dpdk-dev] [PATCH v2 1/4] arch/arm: add vcopyq intrinsic for aarch32 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" vcopyq_laneq_u32 should be implemented for aarch32 which doesn't have the intrinsic. This fixes build of examples/l3fwd for armv7. Fixes: 3c4b4024c225 ("arch/arm: add vcopyq_laneq_u32 for old gcc") Cc: stable@dpdk.org Signed-off-by: Ruifeng Wang Reviewed-by: Ferruh Yigit --- lib/librte_eal/arm/include/rte_vect.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/arm/include/rte_vect.h b/lib/librte_eal/arm/include/rte_vect.h index 9287a1117..d7c8aa61e 100644 --- a/lib/librte_eal/arm/include/rte_vect.h +++ b/lib/librte_eal/arm/include/rte_vect.h @@ -62,7 +62,11 @@ vaddvq_u16(uint16x8_t a) #endif -#if RTE_CC_IS_GNU && (GCC_VERSION < 70000) +#if defined(RTE_ARCH_ARM) || \ +(defined(RTE_ARCH_ARM64) && RTE_CC_IS_GNU && (GCC_VERSION < 70000)) +/* NEON intrinsic vcopyq_laneq_u32() is not supported in ARMv7-A(AArch32) + * On AArch64, this intrinsic is supported since GCC versioin 7. + */ static inline uint32x4_t vcopyq_laneq_u32(uint32x4_t a, const int lane_a, uint32x4_t b, const int lane_b) From patchwork Tue Jun 23 06:58:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruifeng Wang X-Patchwork-Id: 72003 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 741BCA0350; Tue, 23 Jun 2020 08:59:52 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CEFAD1D595; Tue, 23 Jun 2020 08:59:47 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id DD3C91D595 for ; Tue, 23 Jun 2020 08:59:46 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6CFCAD6E; Mon, 22 Jun 2020 23:59:46 -0700 (PDT) Received: from net-arm-thunderx2-02.shanghai.arm.com (net-arm-thunderx2-02.shanghai.arm.com [10.169.41.165]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 935633F71E; Mon, 22 Jun 2020 23:59:43 -0700 (PDT) From: Ruifeng Wang To: Thomas Monjalon , Wei Zhao , Jeff Guo Cc: dev@dpdk.org, ferruh.yigit@intel.com, honnappa.nagarahalli@arm.com, juraj.linkes@pantheon.tech, nd@arm.com, Ruifeng Wang Date: Tue, 23 Jun 2020 14:58:54 +0800 Message-Id: <20200623065856.41189-3-ruifeng.wang@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200623065856.41189-1-ruifeng.wang@arm.com> References: <20200424065053.119885-1-ruifeng.wang@arm.com> <20200623065856.41189-1-ruifeng.wang@arm.com> Subject: [dpdk-dev] [PATCH v2 2/4] net/ixgbe: add support for aarch32 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Expand vector PMD support to aarch32. Enable ixgbe PMD by default for armv7 make build. Signed-off-by: Ruifeng Wang --- config/defconfig_arm-armv7a-linuxapp-gcc | 2 +- drivers/net/ixgbe/Makefile | 2 +- drivers/net/ixgbe/ixgbe_rxtx.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/defconfig_arm-armv7a-linuxapp-gcc b/config/defconfig_arm-armv7a-linuxapp-gcc index 9ecc2a526..9c6d387cf 100644 --- a/config/defconfig_arm-armv7a-linuxapp-gcc +++ b/config/defconfig_arm-armv7a-linuxapp-gcc @@ -30,6 +30,7 @@ CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n # KNI is not supported on 32-bit CONFIG_RTE_LIBRTE_KNI=n +CONFIG_RTE_LIBRTE_IXGBE_PMD=y # cannot use those on ARM CONFIG_RTE_LIBRTE_ARK_PMD=n CONFIG_RTE_LIBRTE_EM_PMD=n @@ -39,7 +40,6 @@ CONFIG_RTE_LIBRTE_E1000_PMD=n CONFIG_RTE_LIBRTE_ENIC_PMD=n CONFIG_RTE_LIBRTE_FM10K_PMD=n CONFIG_RTE_LIBRTE_I40E_PMD=n -CONFIG_RTE_LIBRTE_IXGBE_PMD=n CONFIG_RTE_LIBRTE_VMXNET3_PMD=n CONFIG_RTE_LIBRTE_QEDE_PMD=n CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n diff --git a/drivers/net/ixgbe/Makefile b/drivers/net/ixgbe/Makefile index 0f0bcf1d6..aebf3b286 100644 --- a/drivers/net/ixgbe/Makefile +++ b/drivers/net/ixgbe/Makefile @@ -88,7 +88,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_ethdev.c SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_fdir.c SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_pf.c SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_flow.c -ifeq ($(CONFIG_RTE_ARCH_ARM64),y) +ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),) SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx_vec_neon.c else ifeq ($(CONFIG_RTE_ARCH_X86),y) SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += ixgbe_rxtx_vec_sse.c diff --git a/drivers/net/ixgbe/ixgbe_rxtx.h b/drivers/net/ixgbe/ixgbe_rxtx.h index 20a8b291d..7e09291b2 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx.h +++ b/drivers/net/ixgbe/ixgbe_rxtx.h @@ -33,7 +33,7 @@ #define RTE_IXGBE_DESCS_PER_LOOP 4 -#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64) +#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64) || defined(RTE_ARCH_ARM) #define RTE_IXGBE_RXQ_REARM_THRESH 32 #define RTE_IXGBE_MAX_RX_BURST RTE_IXGBE_RXQ_REARM_THRESH #endif @@ -117,7 +117,7 @@ struct ixgbe_rx_queue { uint8_t using_ipsec; /**< indicates that IPsec RX feature is in use */ #endif -#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64) +#if defined(RTE_ARCH_X86) || defined(RTE_ARCH_ARM64) || defined(RTE_ARCH_ARM) uint16_t rxrearm_nb; /**< number of remaining to be re-armed */ uint16_t rxrearm_start; /**< the idx we start the re-arming from */ #endif From patchwork Tue Jun 23 06:58:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruifeng Wang X-Patchwork-Id: 72004 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7105BA0350; Tue, 23 Jun 2020 09:00:01 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0F7401D5A9; Tue, 23 Jun 2020 08:59:53 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id DA7021D54F; Tue, 23 Jun 2020 08:59:51 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6D57131B; Mon, 22 Jun 2020 23:59:51 -0700 (PDT) Received: from net-arm-thunderx2-02.shanghai.arm.com (net-arm-thunderx2-02.shanghai.arm.com [10.169.41.165]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 4CCF63F71E; Mon, 22 Jun 2020 23:59:48 -0700 (PDT) From: Ruifeng Wang To: Jerin Jacob , Ruifeng Wang , Wei Zhao , Jeff Guo Cc: dev@dpdk.org, ferruh.yigit@intel.com, honnappa.nagarahalli@arm.com, juraj.linkes@pantheon.tech, nd@arm.com, stable@dpdk.org Date: Tue, 23 Jun 2020 14:58:55 +0800 Message-Id: <20200623065856.41189-4-ruifeng.wang@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200623065856.41189-1-ruifeng.wang@arm.com> References: <20200424065053.119885-1-ruifeng.wang@arm.com> <20200623065856.41189-1-ruifeng.wang@arm.com> Subject: [dpdk-dev] [PATCH v2 3/4] net/ixgbe: fix include of vector header file 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The include of 'arm_neon.h' causes issues to old gcc and aarch32. Including 'rte_vect.h' instead fixes these issues. Fixes: b20971b6cca0 ("net/ixgbe: implement vector driver for ARM") Cc: stable@dpdk.org Signed-off-by: Ruifeng Wang --- drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c index 293b7c8bd..aa27ee177 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c @@ -5,13 +5,12 @@ #include #include #include +#include #include "ixgbe_ethdev.h" #include "ixgbe_rxtx.h" #include "ixgbe_rxtx_vec_common.h" -#include - #pragma GCC diagnostic ignored "-Wcast-qual" static inline void From patchwork Tue Jun 23 06:58:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruifeng Wang X-Patchwork-Id: 72005 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A0CA2A0350; Tue, 23 Jun 2020 09:00:09 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8C0031D5B6; Tue, 23 Jun 2020 08:59:58 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id D14301D580 for ; Tue, 23 Jun 2020 08:59:56 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5A259D6E; Mon, 22 Jun 2020 23:59:56 -0700 (PDT) Received: from net-arm-thunderx2-02.shanghai.arm.com (net-arm-thunderx2-02.shanghai.arm.com [10.169.41.165]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 414593F71E; Mon, 22 Jun 2020 23:59:53 -0700 (PDT) From: Ruifeng Wang To: Thomas Monjalon , Beilei Xing , Jeff Guo , Jerin Jacob , Ruifeng Wang Cc: dev@dpdk.org, ferruh.yigit@intel.com, honnappa.nagarahalli@arm.com, juraj.linkes@pantheon.tech, nd@arm.com Date: Tue, 23 Jun 2020 14:58:56 +0800 Message-Id: <20200623065856.41189-5-ruifeng.wang@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200623065856.41189-1-ruifeng.wang@arm.com> References: <20200424065053.119885-1-ruifeng.wang@arm.com> <20200623065856.41189-1-ruifeng.wang@arm.com> Subject: [dpdk-dev] [PATCH v2 4/4] net/i40e: add support for aarch32 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Expand vector PMD support to aarch32. Enable i40e PMD by default for armv7 make build. Signed-off-by: Ruifeng Wang --- config/defconfig_arm-armv7a-linuxapp-gcc | 2 +- drivers/net/i40e/Makefile | 2 +- drivers/net/i40e/i40e_rxtx_vec_neon.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/defconfig_arm-armv7a-linuxapp-gcc b/config/defconfig_arm-armv7a-linuxapp-gcc index 9c6d387cf..15a44afae 100644 --- a/config/defconfig_arm-armv7a-linuxapp-gcc +++ b/config/defconfig_arm-armv7a-linuxapp-gcc @@ -30,6 +30,7 @@ CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=n # KNI is not supported on 32-bit CONFIG_RTE_LIBRTE_KNI=n +CONFIG_RTE_LIBRTE_I40E_PMD=y CONFIG_RTE_LIBRTE_IXGBE_PMD=y # cannot use those on ARM CONFIG_RTE_LIBRTE_ARK_PMD=n @@ -39,7 +40,6 @@ CONFIG_RTE_LIBRTE_CXGBE_PMD=n CONFIG_RTE_LIBRTE_E1000_PMD=n CONFIG_RTE_LIBRTE_ENIC_PMD=n CONFIG_RTE_LIBRTE_FM10K_PMD=n -CONFIG_RTE_LIBRTE_I40E_PMD=n CONFIG_RTE_LIBRTE_VMXNET3_PMD=n CONFIG_RTE_LIBRTE_QEDE_PMD=n CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n diff --git a/drivers/net/i40e/Makefile b/drivers/net/i40e/Makefile index 7ec8d9533..43f10941b 100644 --- a/drivers/net/i40e/Makefile +++ b/drivers/net/i40e/Makefile @@ -69,7 +69,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_dcb.c SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_ethdev.c SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_rxtx.c -ifeq ($(CONFIG_RTE_ARCH_ARM64),y) +ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),) SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_neon.c else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y) SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_altivec.c diff --git a/drivers/net/i40e/i40e_rxtx_vec_neon.c b/drivers/net/i40e/i40e_rxtx_vec_neon.c index 1dfd0478b..67158f108 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_neon.c +++ b/drivers/net/i40e/i40e_rxtx_vec_neon.c @@ -6,6 +6,7 @@ #include #include #include +#include #include "base/i40e_prototype.h" #include "base/i40e_type.h" @@ -13,7 +14,6 @@ #include "i40e_rxtx.h" #include "i40e_rxtx_vec_common.h" -#include #pragma GCC diagnostic ignored "-Wcast-qual"