[v2,2/4] net/ixgbe: add support for aarch32

Message ID 20200623065856.41189-3-ruifeng.wang@arm.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series aarch32 compilation |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Ruifeng Wang June 23, 2020, 6:58 a.m. UTC
  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

David Marchand June 23, 2020, 8:37 a.m. UTC | #1
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
  
Ruifeng Wang June 23, 2020, 8:59 a.m. UTC | #2
> -----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
  

Patch

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