All of lore.kernel.org
 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 related	[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 related	[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 related	[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 related	[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 related	[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 related	[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 related	[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 related	[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 related	[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 related	[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 related	[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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.