DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/3] aarch32 compilation
@ 2020-04-24  6:50 Ruifeng Wang
  2020-04-24  6:50 ` [dpdk-dev] [PATCH 1/3] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
                   ` (5 more replies)
  0 siblings, 6 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-04-24  6:50 UTC (permalink / raw)
  To: wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, gavin.hu, honnappa.nagarahalli, juraj.linkes, nd, Ruifeng Wang

Build aarch32 binary on aarch64 platform hit issues with l3fwd [1]
and ixgbe PMD [2]. This patch set is to fix these.

When building with make, please refer to guide:
http://patches.dpdk.org/patch/62820/

When building with meson, requires series:
http://patches.dpdk.org/cover/68534/

[1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
[2] https://mails.dpdk.org/archives/dev/2020-April/163846.html


Ruifeng Wang (3):
  arch/arm: add vcopyq intrinsic for aarch32
  net/ixgbe: add support for aarch32
  net/ixgbe: fix include of vector header file

 drivers/net/ixgbe/ixgbe_rxtx.h          | 4 ++--
 drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 3 +--
 lib/librte_eal/arm/include/rte_vect.h   | 6 +++++-
 3 files changed, 8 insertions(+), 5 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH 1/3] arch/arm: add vcopyq intrinsic for aarch32
  2020-04-24  6:50 [dpdk-dev] [PATCH 0/3] aarch32 compilation Ruifeng Wang
@ 2020-04-24  6:50 ` Ruifeng Wang
  2020-05-01 14:55   ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
  2020-04-24  6:50 ` [dpdk-dev] [PATCH 2/3] net/ixgbe: add support " Ruifeng Wang
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 26+ messages in thread
From: Ruifeng Wang @ 2020-04-24  6:50 UTC (permalink / raw)
  To: wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, gavin.hu, honnappa.nagarahalli, juraj.linkes, nd,
	Ruifeng Wang, stable

vcopyq_laneq_u32 should be implemented for aarch32 which doesn't have
the intrinsic.

Fixes: 3c4b4024c225 ("arch/arm: add vcopyq_laneq_u32 for old gcc")
Cc: stable@dpdk.org

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
---
 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)
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH 2/3] net/ixgbe: add support for aarch32
  2020-04-24  6:50 [dpdk-dev] [PATCH 0/3] aarch32 compilation Ruifeng Wang
  2020-04-24  6:50 ` [dpdk-dev] [PATCH 1/3] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
@ 2020-04-24  6:50 ` Ruifeng Wang
  2020-05-01 14:59   ` Ferruh Yigit
  2020-04-24  6:50 ` [dpdk-dev] [PATCH 3/3] net/ixgbe: fix include of vector header file Ruifeng Wang
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 26+ messages in thread
From: Ruifeng Wang @ 2020-04-24  6:50 UTC (permalink / raw)
  To: wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, gavin.hu, honnappa.nagarahalli, juraj.linkes, nd, Ruifeng Wang

Expand vector PMD support to aarch32.

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
---
 drivers/net/ixgbe/ixgbe_rxtx.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

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
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH 3/3] net/ixgbe: fix include of vector header file
  2020-04-24  6:50 [dpdk-dev] [PATCH 0/3] aarch32 compilation Ruifeng Wang
  2020-04-24  6:50 ` [dpdk-dev] [PATCH 1/3] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
  2020-04-24  6:50 ` [dpdk-dev] [PATCH 2/3] net/ixgbe: add support " Ruifeng Wang
@ 2020-04-24  6:50 ` Ruifeng Wang
  2020-05-01 15:06 ` [dpdk-dev] [PATCH 0/3] aarch32 compilation Ferruh Yigit
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-04-24  6:50 UTC (permalink / raw)
  To: wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, gavin.hu, honnappa.nagarahalli, juraj.linkes, nd,
	Ruifeng Wang, stable

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 <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
---
 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 <stdint.h>
 #include <rte_ethdev_driver.h>
 #include <rte_malloc.h>
+#include <rte_vect.h>
 
 #include "ixgbe_ethdev.h"
 #include "ixgbe_rxtx.h"
 #include "ixgbe_rxtx_vec_common.h"
 
-#include <arm_neon.h>
-
 #pragma GCC diagnostic ignored "-Wcast-qual"
 
 static inline void
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [dpdk-stable] [PATCH 1/3] arch/arm: add vcopyq intrinsic for aarch32
  2020-04-24  6:50 ` [dpdk-dev] [PATCH 1/3] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
@ 2020-05-01 14:55   ` Ferruh Yigit
  0 siblings, 0 replies; 26+ messages in thread
From: Ferruh Yigit @ 2020-05-01 14:55 UTC (permalink / raw)
  To: Ruifeng Wang, wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, gavin.hu, honnappa.nagarahalli, juraj.linkes, nd, stable

On 4/24/2020 7:50 AM, Ruifeng Wang wrote:
> vcopyq_laneq_u32 should be implemented for aarch32 which doesn't have
> the intrinsic.
> 
> Fixes: 3c4b4024c225 ("arch/arm: add vcopyq_laneq_u32 for old gcc")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> Reviewed-by: Gavin Hu <gavin.hu@arm.com>

This fixes build of examples/l3fwd for armv7.

Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/ixgbe: add support for aarch32
  2020-04-24  6:50 ` [dpdk-dev] [PATCH 2/3] net/ixgbe: add support " Ruifeng Wang
@ 2020-05-01 14:59   ` Ferruh Yigit
  2020-05-06  7:54     ` Ruifeng Wang
  0 siblings, 1 reply; 26+ messages in thread
From: Ferruh Yigit @ 2020-05-01 14:59 UTC (permalink / raw)
  To: Ruifeng Wang, wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, gavin.hu, honnappa.nagarahalli, juraj.linkes, nd

On 4/24/2020 7:50 AM, Ruifeng Wang wrote:
> Expand vector PMD support to aarch32.
> 
> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> ---
>  drivers/net/ixgbe/ixgbe_rxtx.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> 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
> 


This is not enough for Make build, since it doesn't compile
'ixgbe_rxtx_vec_neon.c' for 'RTE_ARCH_ARM', it needs to be updated.


btw, also should IXGBE_PMD enabled by default
'defconfig_arm-armv7a-linuxapp-gcc'? Which is by default disabled currently.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
  2020-04-24  6:50 [dpdk-dev] [PATCH 0/3] aarch32 compilation Ruifeng Wang
                   ` (2 preceding siblings ...)
  2020-04-24  6:50 ` [dpdk-dev] [PATCH 3/3] net/ixgbe: fix include of vector header file Ruifeng Wang
@ 2020-05-01 15:06 ` Ferruh Yigit
  2020-05-06  8:09   ` Ruifeng Wang
  2020-06-23  6:58 ` [dpdk-dev] [PATCH v2 0/4] " Ruifeng Wang
  2020-06-24  7:10 ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ruifeng Wang
  5 siblings, 1 reply; 26+ messages in thread
From: Ferruh Yigit @ 2020-05-01 15:06 UTC (permalink / raw)
  To: Ruifeng Wang, wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, gavin.hu, honnappa.nagarahalli, juraj.linkes, nd

On 4/24/2020 7:50 AM, Ruifeng Wang wrote:
> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1]
> and ixgbe PMD [2]. This patch set is to fix these.
> 
> When building with make, please refer to guide:
> http://patches.dpdk.org/patch/62820/
> 
> When building with meson, requires series:
> http://patches.dpdk.org/cover/68534/
> 
> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html
> 
> 
> Ruifeng Wang (3):
>   arch/arm: add vcopyq intrinsic for aarch32
>   net/ixgbe: add support for aarch32
>   net/ixgbe: fix include of vector header file
> 

Not directly related to this patch but since you are fixing aarch32 compilation,
I am getting following -Wcast-align warnings [1] while cross building with:
arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0


[1]
.../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’:
.../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast increases
required alignment of target type [-Wcast-align]
   31 |  struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param;
      |                            ^
.../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast increases
required alignment of target type [-Wcast-align]
   33 |   (const struct vfio_mp_param *)msg->param;
      |   ^
.../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’:
.../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases required
alignment of target type [-Wcast-align]
  269 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
      |                            ^
.../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases required
alignment of target type [-Wcast-align]
  316 |   p = (struct vfio_mp_param *)mp_rep->param;
      |       ^
  CC eal_common_class.o
.../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_sync_default_container’:
.../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases required
alignment of target type [-Wcast-align]
  627 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
      |                            ^
.../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases required
alignment of target type [-Wcast-align]
  652 |   p = (struct vfio_mp_param *)mp_rep->param;
      |       ^
.../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_get_default_container_fd’:
.../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases required
alignment of target type [-Wcast-align]
 1094 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
      |                            ^
.../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases required
alignment of target type [-Wcast-align]
 1116 |   p = (struct vfio_mp_param *)mp_rep->param;
      |       ^
  CC eal_common_bus.o
.../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’:
.../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases required
alignment of target type [-Wcast-align]
 1202 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
      |                            ^
.../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases required
alignment of target type [-Wcast-align]
 1248 |   p = (struct vfio_mp_param *)mp_rep->param;
      |       ^

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] net/ixgbe: add support for aarch32
  2020-05-01 14:59   ` Ferruh Yigit
@ 2020-05-06  7:54     ` Ruifeng Wang
  0 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-05-06  7:54 UTC (permalink / raw)
  To: Ferruh Yigit, wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, Gavin Hu, Honnappa Nagarahalli, juraj.linkes, nd, nd


> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Friday, May 1, 2020 11:00 PM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
> konstantin.ananyev@intel.com; jerinj@marvell.com;
> viktorin@rehivetech.com
> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
> <nd@arm.com>
> Subject: Re: [dpdk-dev] [PATCH 2/3] net/ixgbe: add support for aarch32
> 
> On 4/24/2020 7:50 AM, Ruifeng Wang wrote:
> > Expand vector PMD support to aarch32.
> >
> > Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> > Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> > ---
> >  drivers/net/ixgbe/ixgbe_rxtx.h | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > 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
> >
> 
> 
> This is not enough for Make build, since it doesn't compile
> 'ixgbe_rxtx_vec_neon.c' for 'RTE_ARCH_ARM', it needs to be updated.
> 
Agreed. Will update Makefile to include this.

> 
> btw, also should IXGBE_PMD enabled by default 'defconfig_arm-armv7a-
> linuxapp-gcc'? Which is by default disabled currently.
Yes. We can enable IXGBE_PMD by default since it now compiles.
Will change it in next version.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
  2020-05-01 15:06 ` [dpdk-dev] [PATCH 0/3] aarch32 compilation Ferruh Yigit
@ 2020-05-06  8:09   ` Ruifeng Wang
  2020-05-06 10:14     ` Ferruh Yigit
  0 siblings, 1 reply; 26+ messages in thread
From: Ruifeng Wang @ 2020-05-06  8:09 UTC (permalink / raw)
  To: Ferruh Yigit, wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, Gavin Hu, Honnappa Nagarahalli, juraj.linkes, nd, nd


> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Friday, May 1, 2020 11:07 PM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
> konstantin.ananyev@intel.com; jerinj@marvell.com;
> viktorin@rehivetech.com
> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
> <nd@arm.com>
> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
> 
> On 4/24/2020 7:50 AM, Ruifeng Wang wrote:
> > Build aarch32 binary on aarch64 platform hit issues with l3fwd [1] and
> > ixgbe PMD [2]. This patch set is to fix these.
> >
> > When building with make, please refer to guide:
> > http://patches.dpdk.org/patch/62820/
> >
> > When building with meson, requires series:
> > http://patches.dpdk.org/cover/68534/
> >
> > [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
> > [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html
> >
> >
> > Ruifeng Wang (3):
> >   arch/arm: add vcopyq intrinsic for aarch32
> >   net/ixgbe: add support for aarch32
> >   net/ixgbe: fix include of vector header file
> >
> 
> Not directly related to this patch but since you are fixing aarch32 compilation,
> I am getting following -Wcast-align warnings [1] while cross building with:
> arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0
> 
I got the same warnings with arm-linux-gnueabihf-gcc. The warnings spread in many different files.
It is because armv7a/aarch32 puts strict align requirement. 
We can first make it compile. And clean up such warnings in next step?

> 
> [1]
> .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’:
> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast increases
> required alignment of target type [-Wcast-align]
>    31 |  struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param;
>       |                            ^
> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast increases
> required alignment of target type [-Wcast-align]
>    33 |   (const struct vfio_mp_param *)msg->param;
>       |   ^
> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’:
> .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases required
> alignment of target type [-Wcast-align]
>   269 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
>       |                            ^
> .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases required
> alignment of target type [-Wcast-align]
>   316 |   p = (struct vfio_mp_param *)mp_rep->param;
>       |       ^
>   CC eal_common_class.o
> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_sync_default_container’:
> .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases required
> alignment of target type [-Wcast-align]
>   627 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
>       |                            ^
> .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases required
> alignment of target type [-Wcast-align]
>   652 |   p = (struct vfio_mp_param *)mp_rep->param;
>       |       ^
> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_get_default_container_fd’:
> .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases required
> alignment of target type [-Wcast-align]
>  1094 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
>       |                            ^
> .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases required
> alignment of target type [-Wcast-align]
>  1116 |   p = (struct vfio_mp_param *)mp_rep->param;
>       |       ^
>   CC eal_common_bus.o
> .../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’:
> .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases required
> alignment of target type [-Wcast-align]
>  1202 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
>       |                            ^
> .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases required
> alignment of target type [-Wcast-align]
>  1248 |   p = (struct vfio_mp_param *)mp_rep->param;
>       |       ^

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
  2020-05-06  8:09   ` Ruifeng Wang
@ 2020-05-06 10:14     ` Ferruh Yigit
  2020-05-06 13:54       ` Ruifeng Wang
  0 siblings, 1 reply; 26+ messages in thread
From: Ferruh Yigit @ 2020-05-06 10:14 UTC (permalink / raw)
  To: Ruifeng Wang, wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, Gavin Hu, Honnappa Nagarahalli, juraj.linkes, nd

On 5/6/2020 9:09 AM, Ruifeng Wang wrote:
> 
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit@intel.com>
>> Sent: Friday, May 1, 2020 11:07 PM
>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
>> konstantin.ananyev@intel.com; jerinj@marvell.com;
>> viktorin@rehivetech.com
>> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli
>> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
>> <nd@arm.com>
>> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
>>
>> On 4/24/2020 7:50 AM, Ruifeng Wang wrote:
>>> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1] and
>>> ixgbe PMD [2]. This patch set is to fix these.
>>>
>>> When building with make, please refer to guide:
>>> http://patches.dpdk.org/patch/62820/
>>>
>>> When building with meson, requires series:
>>> http://patches.dpdk.org/cover/68534/
>>>
>>> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
>>> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html
>>>
>>>
>>> Ruifeng Wang (3):
>>>   arch/arm: add vcopyq intrinsic for aarch32
>>>   net/ixgbe: add support for aarch32
>>>   net/ixgbe: fix include of vector header file
>>>
>>
>> Not directly related to this patch but since you are fixing aarch32 compilation,
>> I am getting following -Wcast-align warnings [1] while cross building with:
>> arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0
>>
> I got the same warnings with arm-linux-gnueabihf-gcc. The warnings spread in many different files.
> It is because armv7a/aarch32 puts strict align requirement. 
> We can first make it compile. And clean up such warnings in next step?

Sure.

I thought it would break the build, aren't we using -Werror for the target?

> 
>>
>> [1]
>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’:
>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast increases
>> required alignment of target type [-Wcast-align]
>>    31 |  struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param;
>>       |                            ^
>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast increases
>> required alignment of target type [-Wcast-align]
>>    33 |   (const struct vfio_mp_param *)msg->param;
>>       |   ^
>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’:
>> .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases required
>> alignment of target type [-Wcast-align]
>>   269 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
>>       |                            ^
>> .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases required
>> alignment of target type [-Wcast-align]
>>   316 |   p = (struct vfio_mp_param *)mp_rep->param;
>>       |       ^
>>   CC eal_common_class.o
>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_sync_default_container’:
>> .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases required
>> alignment of target type [-Wcast-align]
>>   627 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
>>       |                            ^
>> .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases required
>> alignment of target type [-Wcast-align]
>>   652 |   p = (struct vfio_mp_param *)mp_rep->param;
>>       |       ^
>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_get_default_container_fd’:
>> .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases required
>> alignment of target type [-Wcast-align]
>>  1094 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
>>       |                            ^
>> .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases required
>> alignment of target type [-Wcast-align]
>>  1116 |   p = (struct vfio_mp_param *)mp_rep->param;
>>       |       ^
>>   CC eal_common_bus.o
>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’:
>> .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases required
>> alignment of target type [-Wcast-align]
>>  1202 |  struct vfio_mp_param *p = (struct vfio_mp_param *)mp_req.param;
>>       |                            ^
>> .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases required
>> alignment of target type [-Wcast-align]
>>  1248 |   p = (struct vfio_mp_param *)mp_rep->param;
>>       |       ^


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
  2020-05-06 10:14     ` Ferruh Yigit
@ 2020-05-06 13:54       ` Ruifeng Wang
  2020-05-06 14:14         ` Ferruh Yigit
  0 siblings, 1 reply; 26+ messages in thread
From: Ruifeng Wang @ 2020-05-06 13:54 UTC (permalink / raw)
  To: Ferruh Yigit, wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, Gavin Hu, Honnappa Nagarahalli, juraj.linkes, nd, nd


> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Wednesday, May 6, 2020 6:14 PM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
> konstantin.ananyev@intel.com; jerinj@marvell.com;
> viktorin@rehivetech.com
> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
> <nd@arm.com>
> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
> 
> On 5/6/2020 9:09 AM, Ruifeng Wang wrote:
> >
> >> -----Original Message-----
> >> From: Ferruh Yigit <ferruh.yigit@intel.com>
> >> Sent: Friday, May 1, 2020 11:07 PM
> >> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
> >> konstantin.ananyev@intel.com; jerinj@marvell.com;
> >> viktorin@rehivetech.com
> >> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa
> Nagarahalli
> >> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
> >> <nd@arm.com>
> >> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
> >>
> >> On 4/24/2020 7:50 AM, Ruifeng Wang wrote:
> >>> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1]
> >>> and ixgbe PMD [2]. This patch set is to fix these.
> >>>
> >>> When building with make, please refer to guide:
> >>> http://patches.dpdk.org/patch/62820/
> >>>
> >>> When building with meson, requires series:
> >>> http://patches.dpdk.org/cover/68534/
> >>>
> >>> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
> >>> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html
> >>>
> >>>
> >>> Ruifeng Wang (3):
> >>>   arch/arm: add vcopyq intrinsic for aarch32
> >>>   net/ixgbe: add support for aarch32
> >>>   net/ixgbe: fix include of vector header file
> >>>
> >>
> >> Not directly related to this patch but since you are fixing aarch32
> >> compilation, I am getting following -Wcast-align warnings [1] while cross
> building with:
> >> arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0
> >>
> > I got the same warnings with arm-linux-gnueabihf-gcc. The warnings
> spread in many different files.
> > It is because armv7a/aarch32 puts strict align requirement.
> > We can first make it compile. And clean up such warnings in next step?
> 
> Sure.
> 
> I thought it would break the build, aren't we using -Werror for the target?
Currently, "RTE_DEVEL_BUILD=n" is needed for armv7 build.
http://patches.dpdk.org/patch/62820/

> 
> >
> >>
> >> [1]
> >> .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’:
> >> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast
> >> increases required alignment of target type [-Wcast-align]
> >>    31 |  struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param;
> >>       |                            ^
> >> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast
> >> increases required alignment of target type [-Wcast-align]
> >>    33 |   (const struct vfio_mp_param *)msg->param;
> >>       |   ^
> >> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’:
> >> .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases
> >> required alignment of target type [-Wcast-align]
> >>   269 |  struct vfio_mp_param *p = (struct vfio_mp_param
> *)mp_req.param;
> >>       |                            ^
> >> .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases
> >> required alignment of target type [-Wcast-align]
> >>   316 |   p = (struct vfio_mp_param *)mp_rep->param;
> >>       |       ^
> >>   CC eal_common_class.o
> >> .../lib/librte_eal/linux/eal_vfio.c: In function
> ‘vfio_sync_default_container’:
> >> .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases
> >> required alignment of target type [-Wcast-align]
> >>   627 |  struct vfio_mp_param *p = (struct vfio_mp_param
> *)mp_req.param;
> >>       |                            ^
> >> .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases
> >> required alignment of target type [-Wcast-align]
> >>   652 |   p = (struct vfio_mp_param *)mp_rep->param;
> >>       |       ^
> >> .../lib/librte_eal/linux/eal_vfio.c: In function
> ‘vfio_get_default_container_fd’:
> >> .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases
> >> required alignment of target type [-Wcast-align]
> >>  1094 |  struct vfio_mp_param *p = (struct vfio_mp_param
> *)mp_req.param;
> >>       |                            ^
> >> .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases
> >> required alignment of target type [-Wcast-align]
> >>  1116 |   p = (struct vfio_mp_param *)mp_rep->param;
> >>       |       ^
> >>   CC eal_common_bus.o
> >> .../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’:
> >> .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases
> >> required alignment of target type [-Wcast-align]
> >>  1202 |  struct vfio_mp_param *p = (struct vfio_mp_param
> *)mp_req.param;
> >>       |                            ^
> >> .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases
> >> required alignment of target type [-Wcast-align]
> >>  1248 |   p = (struct vfio_mp_param *)mp_rep->param;
> >>       |       ^


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
  2020-05-06 13:54       ` Ruifeng Wang
@ 2020-05-06 14:14         ` Ferruh Yigit
  2020-05-06 14:36           ` Ruifeng Wang
  0 siblings, 1 reply; 26+ messages in thread
From: Ferruh Yigit @ 2020-05-06 14:14 UTC (permalink / raw)
  To: Ruifeng Wang, wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, Gavin Hu, Honnappa Nagarahalli, juraj.linkes, nd

On 5/6/2020 2:54 PM, Ruifeng Wang wrote:
> 
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit@intel.com>
>> Sent: Wednesday, May 6, 2020 6:14 PM
>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
>> konstantin.ananyev@intel.com; jerinj@marvell.com;
>> viktorin@rehivetech.com
>> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli
>> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
>> <nd@arm.com>
>> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
>>
>> On 5/6/2020 9:09 AM, Ruifeng Wang wrote:
>>>
>>>> -----Original Message-----
>>>> From: Ferruh Yigit <ferruh.yigit@intel.com>
>>>> Sent: Friday, May 1, 2020 11:07 PM
>>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
>>>> konstantin.ananyev@intel.com; jerinj@marvell.com;
>>>> viktorin@rehivetech.com
>>>> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa
>> Nagarahalli
>>>> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
>>>> <nd@arm.com>
>>>> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
>>>>
>>>> On 4/24/2020 7:50 AM, Ruifeng Wang wrote:
>>>>> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1]
>>>>> and ixgbe PMD [2]. This patch set is to fix these.
>>>>>
>>>>> When building with make, please refer to guide:
>>>>> http://patches.dpdk.org/patch/62820/
>>>>>
>>>>> When building with meson, requires series:
>>>>> http://patches.dpdk.org/cover/68534/
>>>>>
>>>>> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
>>>>> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html
>>>>>
>>>>>
>>>>> Ruifeng Wang (3):
>>>>>   arch/arm: add vcopyq intrinsic for aarch32
>>>>>   net/ixgbe: add support for aarch32
>>>>>   net/ixgbe: fix include of vector header file
>>>>>
>>>>
>>>> Not directly related to this patch but since you are fixing aarch32
>>>> compilation, I am getting following -Wcast-align warnings [1] while cross
>> building with:
>>>> arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0
>>>>
>>> I got the same warnings with arm-linux-gnueabihf-gcc. The warnings
>> spread in many different files.
>>> It is because armv7a/aarch32 puts strict align requirement.
>>> We can first make it compile. And clean up such warnings in next step?
>>
>> Sure.
>>
>> I thought it would break the build, aren't we using -Werror for the target?
> Currently, "RTE_DEVEL_BUILD=n" is needed for armv7 build.
> http://patches.dpdk.org/patch/62820/

May be not.

I did able to build without "RTE_DEVEL_BUILD=n", while checking how :), found
that "CONFIG_RTE_ARCH_STRICT_ALIGN=y" set in the armv7a config
(defconfig_arm-armv7a-linux-gcc), seems explicitly added for these
'-Wcast-align' warnings.

Overall to the point of the discussion, since this way or that, build is not
broken with cast-align warnings, I am OK to fix them later gradually.

A side note is, I wonder if these 'RTE_DEVEL_BUILD' or
'CONFIG_RTE_ARCH_STRICT_ALIGN' reflected to the meson build, taking into account
that make build is going away on 20.11, will we able to keep these
functionalities in meson.

> 
>>
>>>
>>>>
>>>> [1]
>>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function ‘vfio_mp_primary’:
>>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast
>>>> increases required alignment of target type [-Wcast-align]
>>>>    31 |  struct vfio_mp_param *r = (struct vfio_mp_param *)reply.param;
>>>>       |                            ^
>>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast
>>>> increases required alignment of target type [-Wcast-align]
>>>>    33 |   (const struct vfio_mp_param *)msg->param;
>>>>       |   ^
>>>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’:
>>>> .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases
>>>> required alignment of target type [-Wcast-align]
>>>>   269 |  struct vfio_mp_param *p = (struct vfio_mp_param
>> *)mp_req.param;
>>>>       |                            ^
>>>> .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases
>>>> required alignment of target type [-Wcast-align]
>>>>   316 |   p = (struct vfio_mp_param *)mp_rep->param;
>>>>       |       ^
>>>>   CC eal_common_class.o
>>>> .../lib/librte_eal/linux/eal_vfio.c: In function
>> ‘vfio_sync_default_container’:
>>>> .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases
>>>> required alignment of target type [-Wcast-align]
>>>>   627 |  struct vfio_mp_param *p = (struct vfio_mp_param
>> *)mp_req.param;
>>>>       |                            ^
>>>> .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases
>>>> required alignment of target type [-Wcast-align]
>>>>   652 |   p = (struct vfio_mp_param *)mp_rep->param;
>>>>       |       ^
>>>> .../lib/librte_eal/linux/eal_vfio.c: In function
>> ‘vfio_get_default_container_fd’:
>>>> .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast increases
>>>> required alignment of target type [-Wcast-align]
>>>>  1094 |  struct vfio_mp_param *p = (struct vfio_mp_param
>> *)mp_req.param;
>>>>       |                            ^
>>>> .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases
>>>> required alignment of target type [-Wcast-align]
>>>>  1116 |   p = (struct vfio_mp_param *)mp_rep->param;
>>>>       |       ^
>>>>   CC eal_common_bus.o
>>>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘rte_vfio_get_container_fd’:
>>>> .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast increases
>>>> required alignment of target type [-Wcast-align]
>>>>  1202 |  struct vfio_mp_param *p = (struct vfio_mp_param
>> *)mp_req.param;
>>>>       |                            ^
>>>> .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases
>>>> required alignment of target type [-Wcast-align]
>>>>  1248 |   p = (struct vfio_mp_param *)mp_rep->param;
>>>>       |       ^
> 


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
  2020-05-06 14:14         ` Ferruh Yigit
@ 2020-05-06 14:36           ` Ruifeng Wang
  0 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-05-06 14:36 UTC (permalink / raw)
  To: Ferruh Yigit, wenzhuo.lu, konstantin.ananyev, jerinj, viktorin
  Cc: dev, Gavin Hu, Honnappa Nagarahalli, juraj.linkes, nd, nd


> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Wednesday, May 6, 2020 10:15 PM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
> konstantin.ananyev@intel.com; jerinj@marvell.com;
> viktorin@rehivetech.com
> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
> <nd@arm.com>
> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
> 
> On 5/6/2020 2:54 PM, Ruifeng Wang wrote:
> >
> >> -----Original Message-----
> >> From: Ferruh Yigit <ferruh.yigit@intel.com>
> >> Sent: Wednesday, May 6, 2020 6:14 PM
> >> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
> >> konstantin.ananyev@intel.com; jerinj@marvell.com;
> >> viktorin@rehivetech.com
> >> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa
> Nagarahalli
> >> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
> >> <nd@arm.com>
> >> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
> >>
> >> On 5/6/2020 9:09 AM, Ruifeng Wang wrote:
> >>>
> >>>> -----Original Message-----
> >>>> From: Ferruh Yigit <ferruh.yigit@intel.com>
> >>>> Sent: Friday, May 1, 2020 11:07 PM
> >>>> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; wenzhuo.lu@intel.com;
> >>>> konstantin.ananyev@intel.com; jerinj@marvell.com;
> >>>> viktorin@rehivetech.com
> >>>> Cc: dev@dpdk.org; Gavin Hu <Gavin.Hu@arm.com>; Honnappa
> >> Nagarahalli
> >>>> <Honnappa.Nagarahalli@arm.com>; juraj.linkes@pantheon.tech; nd
> >>>> <nd@arm.com>
> >>>> Subject: Re: [dpdk-dev] [PATCH 0/3] aarch32 compilation
> >>>>
> >>>> On 4/24/2020 7:50 AM, Ruifeng Wang wrote:
> >>>>> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1]
> >>>>> and ixgbe PMD [2]. This patch set is to fix these.
> >>>>>
> >>>>> When building with make, please refer to guide:
> >>>>> http://patches.dpdk.org/patch/62820/
> >>>>>
> >>>>> When building with meson, requires series:
> >>>>> http://patches.dpdk.org/cover/68534/
> >>>>>
> >>>>> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
> >>>>> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html
> >>>>>
> >>>>>
> >>>>> Ruifeng Wang (3):
> >>>>>   arch/arm: add vcopyq intrinsic for aarch32
> >>>>>   net/ixgbe: add support for aarch32
> >>>>>   net/ixgbe: fix include of vector header file
> >>>>>
> >>>>
> >>>> Not directly related to this patch but since you are fixing aarch32
> >>>> compilation, I am getting following -Wcast-align warnings [1] while
> >>>> cross
> >> building with:
> >>>> arm-linux-gcc.br_real (Buildroot 2020.02-00011-g7ea8a52) 9.3.0
> >>>>
> >>> I got the same warnings with arm-linux-gnueabihf-gcc. The warnings
> >> spread in many different files.
> >>> It is because armv7a/aarch32 puts strict align requirement.
> >>> We can first make it compile. And clean up such warnings in next step?
> >>
> >> Sure.
> >>
> >> I thought it would break the build, aren't we using -Werror for the target?
> > Currently, "RTE_DEVEL_BUILD=n" is needed for armv7 build.
> > http://patches.dpdk.org/patch/62820/
> 
> May be not.
> 
> I did able to build without "RTE_DEVEL_BUILD=n", while checking how :),
> found that "CONFIG_RTE_ARCH_STRICT_ALIGN=y" set in the armv7a config
> (defconfig_arm-armv7a-linux-gcc), seems explicitly added for these '-Wcast-
> align' warnings.
> 
> Overall to the point of the discussion, since this way or that, build is not
> broken with cast-align warnings, I am OK to fix them later gradually.
> 
> A side note is, I wonder if these 'RTE_DEVEL_BUILD' or
> 'CONFIG_RTE_ARCH_STRICT_ALIGN' reflected to the meson build, taking
> into account that make build is going away on 20.11, will we able to keep
> these functionalities in meson.
> 
Yes. There is a patch to enable meson build for armv7, and 'CONFIG_RTE_ARCH_STRICT_ALIGN' is added.
http://patches.dpdk.org/patch/69539/
Meson also provides option to set "werror".
The functionalities can be kept.
> >
> >>
> >>>
> >>>>
> >>>> [1]
> >>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c: In function
> ‘vfio_mp_primary’:
> >>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:31:28: warning: cast
> >>>> increases required alignment of target type [-Wcast-align]
> >>>>    31 |  struct vfio_mp_param *r = (struct vfio_mp_param
> *)reply.param;
> >>>>       |                            ^
> >>>> .../lib/librte_eal/linux/eal_vfio_mp_sync.c:33:3: warning: cast
> >>>> increases required alignment of target type [-Wcast-align]
> >>>>    33 |   (const struct vfio_mp_param *)msg->param;
> >>>>       |   ^
> >>>> .../lib/librte_eal/linux/eal_vfio.c: In function ‘vfio_open_group_fd’:
> >>>> .../lib/librte_eal/linux/eal_vfio.c:269:28: warning: cast increases
> >>>> required alignment of target type [-Wcast-align]
> >>>>   269 |  struct vfio_mp_param *p = (struct vfio_mp_param
> >> *)mp_req.param;
> >>>>       |                            ^
> >>>> .../lib/librte_eal/linux/eal_vfio.c:316:7: warning: cast increases
> >>>> required alignment of target type [-Wcast-align]
> >>>>   316 |   p = (struct vfio_mp_param *)mp_rep->param;
> >>>>       |       ^
> >>>>   CC eal_common_class.o
> >>>> .../lib/librte_eal/linux/eal_vfio.c: In function
> >> ‘vfio_sync_default_container’:
> >>>> .../lib/librte_eal/linux/eal_vfio.c:627:28: warning: cast increases
> >>>> required alignment of target type [-Wcast-align]
> >>>>   627 |  struct vfio_mp_param *p = (struct vfio_mp_param
> >> *)mp_req.param;
> >>>>       |                            ^
> >>>> .../lib/librte_eal/linux/eal_vfio.c:652:7: warning: cast increases
> >>>> required alignment of target type [-Wcast-align]
> >>>>   652 |   p = (struct vfio_mp_param *)mp_rep->param;
> >>>>       |       ^
> >>>> .../lib/librte_eal/linux/eal_vfio.c: In function
> >> ‘vfio_get_default_container_fd’:
> >>>> .../lib/librte_eal/linux/eal_vfio.c:1094:28: warning: cast
> >>>> increases required alignment of target type [-Wcast-align]
> >>>>  1094 |  struct vfio_mp_param *p = (struct vfio_mp_param
> >> *)mp_req.param;
> >>>>       |                            ^
> >>>> .../lib/librte_eal/linux/eal_vfio.c:1116:7: warning: cast increases
> >>>> required alignment of target type [-Wcast-align]
> >>>>  1116 |   p = (struct vfio_mp_param *)mp_rep->param;
> >>>>       |       ^
> >>>>   CC eal_common_bus.o
> >>>> .../lib/librte_eal/linux/eal_vfio.c: In function
> ‘rte_vfio_get_container_fd’:
> >>>> .../lib/librte_eal/linux/eal_vfio.c:1202:28: warning: cast
> >>>> increases required alignment of target type [-Wcast-align]
> >>>>  1202 |  struct vfio_mp_param *p = (struct vfio_mp_param
> >> *)mp_req.param;
> >>>>       |                            ^
> >>>> .../lib/librte_eal/linux/eal_vfio.c:1248:7: warning: cast increases
> >>>> required alignment of target type [-Wcast-align]
> >>>>  1248 |   p = (struct vfio_mp_param *)mp_rep->param;
> >>>>       |       ^
> >


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 0/4] aarch32 compilation
  2020-04-24  6:50 [dpdk-dev] [PATCH 0/3] aarch32 compilation Ruifeng Wang
                   ` (3 preceding siblings ...)
  2020-05-01 15:06 ` [dpdk-dev] [PATCH 0/3] aarch32 compilation Ferruh Yigit
@ 2020-06-23  6:58 ` Ruifeng Wang
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 1/4] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
                     ` (3 more replies)
  2020-06-24  7:10 ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ruifeng Wang
  5 siblings, 4 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-23  6:58 UTC (permalink / raw)
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd, Ruifeng Wang

Build aarch32 binary on aarch64 platform hit issues with l3fwd [1]
and ixgbe PMD [2]. This patch set is to fix these.

When building with make, please refer to guide:
http://patches.dpdk.org/patch/62820/

When building with meson, requires series:
http://patches.dpdk.org/cover/69536/

[1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
[2] https://mails.dpdk.org/archives/dev/2020-April/163846.html


v2:
Fix aarch32 Make build for ixgbe, and enable ixgbe PMD by default.
Add aarch32 support for i40e, and enable i40e PMD by default.

Ruifeng Wang (4):
  arch/arm: add vcopyq intrinsic for aarch32
  net/ixgbe: add support for aarch32
  net/ixgbe: fix include of vector header file
  net/i40e: add support for aarch32

 config/defconfig_arm-armv7a-linuxapp-gcc | 4 ++--
 drivers/net/i40e/Makefile                | 2 +-
 drivers/net/i40e/i40e_rxtx_vec_neon.c    | 2 +-
 drivers/net/ixgbe/Makefile               | 2 +-
 drivers/net/ixgbe/ixgbe_rxtx.h           | 4 ++--
 drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c  | 3 +--
 lib/librte_eal/arm/include/rte_vect.h    | 6 +++++-
 7 files changed, 13 insertions(+), 10 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 1/4] arch/arm: add vcopyq intrinsic for aarch32
  2020-06-23  6:58 ` [dpdk-dev] [PATCH v2 0/4] " Ruifeng Wang
@ 2020-06-23  6:58   ` Ruifeng Wang
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 2/4] net/ixgbe: add support " Ruifeng Wang
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-23  6:58 UTC (permalink / raw)
  To: Jan Viktorin, Ruifeng Wang
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd, stable

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 <ruifeng.wang@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 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)
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 2/4] net/ixgbe: add support for aarch32
  2020-06-23  6:58 ` [dpdk-dev] [PATCH v2 0/4] " Ruifeng Wang
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 1/4] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
@ 2020-06-23  6:58   ` Ruifeng Wang
  2020-06-23  8:37     ` David Marchand
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 3/4] net/ixgbe: fix include of vector header file Ruifeng Wang
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 4/4] net/i40e: add support for aarch32 Ruifeng Wang
  3 siblings, 1 reply; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-23  6:58 UTC (permalink / raw)
  To: Thomas Monjalon, Wei Zhao, Jeff Guo
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd, Ruifeng Wang

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(-)

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
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 3/4] net/ixgbe: fix include of vector header file
  2020-06-23  6:58 ` [dpdk-dev] [PATCH v2 0/4] " Ruifeng Wang
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 1/4] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 2/4] net/ixgbe: add support " Ruifeng Wang
@ 2020-06-23  6:58   ` Ruifeng Wang
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 4/4] net/i40e: add support for aarch32 Ruifeng Wang
  3 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-23  6:58 UTC (permalink / raw)
  To: Jerin Jacob, Ruifeng Wang, Wei Zhao, Jeff Guo
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd, stable

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 <ruifeng.wang@arm.com>
---
 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 <stdint.h>
 #include <rte_ethdev_driver.h>
 #include <rte_malloc.h>
+#include <rte_vect.h>
 
 #include "ixgbe_ethdev.h"
 #include "ixgbe_rxtx.h"
 #include "ixgbe_rxtx_vec_common.h"
 
-#include <arm_neon.h>
-
 #pragma GCC diagnostic ignored "-Wcast-qual"
 
 static inline void
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 4/4] net/i40e: add support for aarch32
  2020-06-23  6:58 ` [dpdk-dev] [PATCH v2 0/4] " Ruifeng Wang
                     ` (2 preceding siblings ...)
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 3/4] net/ixgbe: fix include of vector header file Ruifeng Wang
@ 2020-06-23  6:58   ` Ruifeng Wang
  3 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-23  6:58 UTC (permalink / raw)
  To: Thomas Monjalon, Beilei Xing, Jeff Guo, Jerin Jacob, Ruifeng Wang
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd

Expand vector PMD support to aarch32.
Enable i40e 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/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 <stdint.h>
 #include <rte_ethdev_driver.h>
 #include <rte_malloc.h>
+#include <rte_vect.h>
 
 #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 <arm_neon.h>
 
 #pragma GCC diagnostic ignored "-Wcast-qual"
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH v2 2/4] net/ixgbe: add support for aarch32
  2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 2/4] net/ixgbe: add support " Ruifeng Wang
@ 2020-06-23  8:37     ` David Marchand
  2020-06-23  8:59       ` Ruifeng Wang
  0 siblings, 1 reply; 26+ messages in thread
From: David Marchand @ 2020-06-23  8:37 UTC (permalink / raw)
  To: Ruifeng Wang
  Cc: Thomas Monjalon, Wei Zhao, Jeff Guo, dev, Yigit, Ferruh,
	Honnappa Nagarahalli, Juraj Linkeš,
	nd

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


-- 
David Marchand


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH v2 2/4] net/ixgbe: add support for aarch32
  2020-06-23  8:37     ` David Marchand
@ 2020-06-23  8:59       ` Ruifeng Wang
  0 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-23  8:59 UTC (permalink / raw)
  To: David Marchand
  Cc: thomas, Wei Zhao, Jeff Guo, dev, Yigit, Ferruh,
	Honnappa Nagarahalli, Juraj Linkeš,
	nd, nd

> -----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


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v3 0/4] aarch32 compilation
  2020-04-24  6:50 [dpdk-dev] [PATCH 0/3] aarch32 compilation Ruifeng Wang
                   ` (4 preceding siblings ...)
  2020-06-23  6:58 ` [dpdk-dev] [PATCH v2 0/4] " Ruifeng Wang
@ 2020-06-24  7:10 ` Ruifeng Wang
  2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 1/4] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
                     ` (4 more replies)
  5 siblings, 5 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-24  7:10 UTC (permalink / raw)
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd, Ruifeng Wang

Build aarch32 binary on aarch64 platform hit issues with l3fwd [1]
and ixgbe PMD [2]. This patch set is to fix these.

When building with make, please refer to guide:
http://patches.dpdk.org/patch/62820/

When building with meson, requires series:
http://patches.dpdk.org/cover/69536/

[1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
[2] https://mails.dpdk.org/archives/dev/2020-April/163846.html


v3:
Remove ixgbe/i40e from armv7 config to set these PMDs enabled.
v2:
Fix aarch32 Make build for ixgbe, and enable ixgbe PMD by default.
Add aarch32 support for i40e, and enable i40e PMD by default.

Ruifeng Wang (4):
  arch/arm: add vcopyq intrinsic for aarch32
  net/ixgbe: add support for aarch32
  net/ixgbe: fix include of vector header file
  net/i40e: add support for aarch32

 config/defconfig_arm-armv7a-linuxapp-gcc | 2 --
 drivers/net/i40e/Makefile                | 2 +-
 drivers/net/i40e/i40e_rxtx_vec_neon.c    | 2 +-
 drivers/net/ixgbe/Makefile               | 2 +-
 drivers/net/ixgbe/ixgbe_rxtx.h           | 4 ++--
 drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c  | 3 +--
 lib/librte_eal/arm/include/rte_vect.h    | 6 +++++-
 7 files changed, 11 insertions(+), 10 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v3 1/4] arch/arm: add vcopyq intrinsic for aarch32
  2020-06-24  7:10 ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ruifeng Wang
@ 2020-06-24  7:10   ` Ruifeng Wang
  2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 2/4] net/ixgbe: add support " Ruifeng Wang
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-24  7:10 UTC (permalink / raw)
  To: Jan Viktorin, Ruifeng Wang
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd, stable

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 <ruifeng.wang@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 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)
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v3 2/4] net/ixgbe: add support for aarch32
  2020-06-24  7:10 ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ruifeng Wang
  2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 1/4] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
@ 2020-06-24  7:10   ` Ruifeng Wang
  2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 3/4] net/ixgbe: fix include of vector header file Ruifeng Wang
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-24  7:10 UTC (permalink / raw)
  To: Thomas Monjalon, Wei Zhao, Jeff Guo
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd, Ruifeng Wang

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 | 1 -
 drivers/net/ixgbe/Makefile               | 2 +-
 drivers/net/ixgbe/ixgbe_rxtx.h           | 4 ++--
 3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/config/defconfig_arm-armv7a-linuxapp-gcc b/config/defconfig_arm-armv7a-linuxapp-gcc
index 9ecc2a526..e5d6b6a0c 100644
--- a/config/defconfig_arm-armv7a-linuxapp-gcc
+++ b/config/defconfig_arm-armv7a-linuxapp-gcc
@@ -39,7 +39,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
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v3 3/4] net/ixgbe: fix include of vector header file
  2020-06-24  7:10 ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ruifeng Wang
  2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 1/4] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
  2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 2/4] net/ixgbe: add support " Ruifeng Wang
@ 2020-06-24  7:10   ` Ruifeng Wang
  2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 4/4] net/i40e: add support for aarch32 Ruifeng Wang
  2020-06-26 13:44   ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ferruh Yigit
  4 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-24  7:10 UTC (permalink / raw)
  To: Jerin Jacob, Ruifeng Wang, Wei Zhao, Jeff Guo
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd, stable

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 <ruifeng.wang@arm.com>
---
 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 <stdint.h>
 #include <rte_ethdev_driver.h>
 #include <rte_malloc.h>
+#include <rte_vect.h>
 
 #include "ixgbe_ethdev.h"
 #include "ixgbe_rxtx.h"
 #include "ixgbe_rxtx_vec_common.h"
 
-#include <arm_neon.h>
-
 #pragma GCC diagnostic ignored "-Wcast-qual"
 
 static inline void
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v3 4/4] net/i40e: add support for aarch32
  2020-06-24  7:10 ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ruifeng Wang
                     ` (2 preceding siblings ...)
  2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 3/4] net/ixgbe: fix include of vector header file Ruifeng Wang
@ 2020-06-24  7:10   ` Ruifeng Wang
  2020-06-26 13:44   ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ferruh Yigit
  4 siblings, 0 replies; 26+ messages in thread
From: Ruifeng Wang @ 2020-06-24  7:10 UTC (permalink / raw)
  To: Thomas Monjalon, Beilei Xing, Jeff Guo, Jerin Jacob, Ruifeng Wang
  Cc: dev, ferruh.yigit, honnappa.nagarahalli, juraj.linkes, nd

Expand vector PMD support to aarch32.
Enable i40e PMD by default for armv7 make build.

Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
 config/defconfig_arm-armv7a-linuxapp-gcc | 1 -
 drivers/net/i40e/Makefile                | 2 +-
 drivers/net/i40e/i40e_rxtx_vec_neon.c    | 2 +-
 3 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/config/defconfig_arm-armv7a-linuxapp-gcc b/config/defconfig_arm-armv7a-linuxapp-gcc
index e5d6b6a0c..ac9112086 100644
--- a/config/defconfig_arm-armv7a-linuxapp-gcc
+++ b/config/defconfig_arm-armv7a-linuxapp-gcc
@@ -38,7 +38,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 <stdint.h>
 #include <rte_ethdev_driver.h>
 #include <rte_malloc.h>
+#include <rte_vect.h>
 
 #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 <arm_neon.h>
 
 #pragma GCC diagnostic ignored "-Wcast-qual"
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH v3 0/4] aarch32 compilation
  2020-06-24  7:10 ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ruifeng Wang
                     ` (3 preceding siblings ...)
  2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 4/4] net/i40e: add support for aarch32 Ruifeng Wang
@ 2020-06-26 13:44   ` Ferruh Yigit
  4 siblings, 0 replies; 26+ messages in thread
From: Ferruh Yigit @ 2020-06-26 13:44 UTC (permalink / raw)
  To: Ruifeng Wang; +Cc: dev, honnappa.nagarahalli, juraj.linkes, nd

On 6/24/2020 8:10 AM, Ruifeng Wang wrote:
> Build aarch32 binary on aarch64 platform hit issues with l3fwd [1]
> and ixgbe PMD [2]. This patch set is to fix these.
> 
> When building with make, please refer to guide:
> http://patches.dpdk.org/patch/62820/
> 
> When building with meson, requires series:
> http://patches.dpdk.org/cover/69536/
> 
> [1] https://mails.dpdk.org/archives/dev/2020-April/162673.html
> [2] https://mails.dpdk.org/archives/dev/2020-April/163846.html
> 
> 
> v3:
> Remove ixgbe/i40e from armv7 config to set these PMDs enabled.
> v2:
> Fix aarch32 Make build for ixgbe, and enable ixgbe PMD by default.
> Add aarch32 support for i40e, and enable i40e PMD by default.
> 
> Ruifeng Wang (4):
>   arch/arm: add vcopyq intrinsic for aarch32
>   net/ixgbe: add support for aarch32
>   net/ixgbe: fix include of vector header file
>   net/i40e: add support for aarch32

For series,
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

Applied to dpdk-next-net/master, thanks.

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2020-06-26 13:44 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-24  6:50 [dpdk-dev] [PATCH 0/3] aarch32 compilation Ruifeng Wang
2020-04-24  6:50 ` [dpdk-dev] [PATCH 1/3] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
2020-05-01 14:55   ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2020-04-24  6:50 ` [dpdk-dev] [PATCH 2/3] net/ixgbe: add support " Ruifeng Wang
2020-05-01 14:59   ` Ferruh Yigit
2020-05-06  7:54     ` Ruifeng Wang
2020-04-24  6:50 ` [dpdk-dev] [PATCH 3/3] net/ixgbe: fix include of vector header file Ruifeng Wang
2020-05-01 15:06 ` [dpdk-dev] [PATCH 0/3] aarch32 compilation Ferruh Yigit
2020-05-06  8:09   ` Ruifeng Wang
2020-05-06 10:14     ` Ferruh Yigit
2020-05-06 13:54       ` Ruifeng Wang
2020-05-06 14:14         ` Ferruh Yigit
2020-05-06 14:36           ` Ruifeng Wang
2020-06-23  6:58 ` [dpdk-dev] [PATCH v2 0/4] " Ruifeng Wang
2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 1/4] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 2/4] net/ixgbe: add support " Ruifeng Wang
2020-06-23  8:37     ` David Marchand
2020-06-23  8:59       ` Ruifeng Wang
2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 3/4] net/ixgbe: fix include of vector header file Ruifeng Wang
2020-06-23  6:58   ` [dpdk-dev] [PATCH v2 4/4] net/i40e: add support for aarch32 Ruifeng Wang
2020-06-24  7:10 ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ruifeng Wang
2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 1/4] arch/arm: add vcopyq intrinsic for aarch32 Ruifeng Wang
2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 2/4] net/ixgbe: add support " Ruifeng Wang
2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 3/4] net/ixgbe: fix include of vector header file Ruifeng Wang
2020-06-24  7:10   ` [dpdk-dev] [PATCH v3 4/4] net/i40e: add support for aarch32 Ruifeng Wang
2020-06-26 13:44   ` [dpdk-dev] [PATCH v3 0/4] aarch32 compilation Ferruh Yigit

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git