[v2,2/4] net/ixgbe: add support for aarch32
Checks
Commit Message
Expand vector PMD support to aarch32.
Enable ixgbe PMD by default for armv7 make build.
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
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(-)
Comments
Hello Ruifeng,
On Tue, Jun 23, 2020 at 9:00 AM Ruifeng Wang <ruifeng.wang@arm.com> wrote:
> 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
All components are enabled by default in the common_base file.
We explicitly disable components in the targets config files that
can't support them.
$ git grep IXGBE_PMD= origin/master -- config/
config/common_base:CONFIG_RTE_LIBRTE_IXGBE_PMD=y
config/defconfig_arm-armv7a-linuxapp-gcc:CONFIG_RTE_LIBRTE_IXGBE_PMD=n
config/defconfig_ppc_64-power8-linuxapp-gcc:CONFIG_RTE_LIBRTE_IXGBE_PMD=n
> # 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
So removing this line only should be enough.
Idem with i40e in following patch.
> CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
> CONFIG_RTE_LIBRTE_QEDE_PMD=n
> CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Tuesday, June 23, 2020 4:37 PM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>
> Cc: thomas@monjalon.net; Wei Zhao <wei.zhao1@intel.com>; Jeff Guo
> <jia.guo@intel.com>; dev <dev@dpdk.org>; Yigit, Ferruh
> <ferruh.yigit@intel.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Juraj Linkeš
> <juraj.linkes@pantheon.tech>; nd <nd@arm.com>
> Subject: Re: [dpdk-dev] [PATCH v2 2/4] net/ixgbe: add support for aarch32
>
> Hello Ruifeng,
Hi David,
Thanks for your review.
>
> On Tue, Jun 23, 2020 at 9:00 AM Ruifeng Wang <ruifeng.wang@arm.com>
> wrote:
> > 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
>
> All components are enabled by default in the common_base file.
> We explicitly disable components in the targets config files that can't support
> them.
>
> $ git grep IXGBE_PMD= origin/master -- config/
> config/common_base:CONFIG_RTE_LIBRTE_IXGBE_PMD=y
> config/defconfig_arm-armv7a-linuxapp-
> gcc:CONFIG_RTE_LIBRTE_IXGBE_PMD=n
> config/defconfig_ppc_64-power8-linuxapp-
> gcc:CONFIG_RTE_LIBRTE_IXGBE_PMD=n
>
Didn't realize that.
Will change to remove IXGBE line from armv7a config in next version.
>
> > # 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
>
> So removing this line only should be enough.
> Idem with i40e in following patch.
>
Will remove the line from armv7a config in next version.
/Ruifeng
>
> > CONFIG_RTE_LIBRTE_VMXNET3_PMD=n
> > CONFIG_RTE_LIBRTE_QEDE_PMD=n
> > CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
>
>
> --
> David Marchand
@@ -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
@@ -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
@@ -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