DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM
@ 2016-02-05 14:54 Thomas Monjalon
  2016-02-05 14:54 ` [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch Thomas Monjalon
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Thomas Monjalon @ 2016-02-05 14:54 UTC (permalink / raw)
  To: bruce.richardson, remy.horton; +Cc: dev

Thomas Monjalon (3):
  examples/distributor: fix build for non-x86 arch
  examples/ethtool: fix build
  examples: fix build dependencies

 examples/Makefile                   | 12 ++++++++----
 examples/distributor/main.c         |  8 ++++----
 examples/ethtool/ethtool-app/main.c |  2 +-
 3 files changed, 13 insertions(+), 9 deletions(-)

-- 
2.7.0

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

* [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch
  2016-02-05 14:54 [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
@ 2016-02-05 14:54 ` Thomas Monjalon
  2016-02-05 15:07   ` Pattan, Reshma
  2016-02-05 14:54 ` [dpdk-dev] [PATCH 2/3] examples/ethtool: fix build Thomas Monjalon
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Thomas Monjalon @ 2016-02-05 14:54 UTC (permalink / raw)
  To: bruce.richardson, remy.horton; +Cc: dev

_mm_prefetch is defined only in x86 compilers.
rte_prefetch functions are defined in EAL for each arch,
and must be preferred over compiler intrinsics.

Fixes: 07db4a975094 ("examples/distributor: new sample app")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 examples/distributor/main.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/examples/distributor/main.c b/examples/distributor/main.c
index 4e74f8f..87344ac 100644
--- a/examples/distributor/main.c
+++ b/examples/distributor/main.c
@@ -335,13 +335,13 @@ lcore_tx(struct rte_ring *in_r)
 
 			/* for traffic we receive, queue it up for transmit */
 			uint16_t i;
-			_mm_prefetch((void *)bufs[0], 0);
-			_mm_prefetch((void *)bufs[1], 0);
-			_mm_prefetch((void *)bufs[2], 0);
+			rte_prefetch0((void *)bufs[0]);
+			rte_prefetch0((void *)bufs[1]);
+			rte_prefetch0((void *)bufs[2]);
 			for (i = 0; i < nb_rx; i++) {
 				struct output_buffer *outbuf;
 				uint8_t outp;
-				_mm_prefetch((void *)bufs[i + 3], 0);
+				rte_prefetch0((void *)bufs[i + 3]);
 				/*
 				 * workers should update in_port to hold the
 				 * output port value
-- 
2.7.0

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

* [dpdk-dev] [PATCH 2/3] examples/ethtool: fix build
  2016-02-05 14:54 [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
  2016-02-05 14:54 ` [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch Thomas Monjalon
@ 2016-02-05 14:54 ` Thomas Monjalon
  2016-02-15 11:15   ` Remy Horton
  2016-02-05 14:54 ` [dpdk-dev] [PATCH 3/3] examples: fix build dependencies Thomas Monjalon
  2016-02-16  6:50 ` [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
  3 siblings, 1 reply; 9+ messages in thread
From: Thomas Monjalon @ 2016-02-05 14:54 UTC (permalink / raw)
  To: bruce.richardson, remy.horton; +Cc: dev

When building for ARM, the spinlock structure was not found.
It appears to be a mismatch with rwlock which is not used in this file.

Fixes: bda68ab9d1e7 ("examples/ethtool: add user-space ethtool sample application")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 examples/ethtool/ethtool-app/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/ethtool/ethtool-app/main.c b/examples/ethtool/ethtool-app/main.c
index e21abcd..2c655d8 100644
--- a/examples/ethtool/ethtool-app/main.c
+++ b/examples/ethtool/ethtool-app/main.c
@@ -36,7 +36,7 @@
 #include <stdlib.h>
 
 #include <rte_common.h>
-#include <rte_rwlock.h>
+#include <rte_spinlock.h>
 #include <rte_eal.h>
 #include <rte_ethdev.h>
 #include <rte_ether.h>
-- 
2.7.0

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

* [dpdk-dev] [PATCH 3/3] examples: fix build dependencies
  2016-02-05 14:54 [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
  2016-02-05 14:54 ` [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch Thomas Monjalon
  2016-02-05 14:54 ` [dpdk-dev] [PATCH 2/3] examples/ethtool: fix build Thomas Monjalon
@ 2016-02-05 14:54 ` Thomas Monjalon
  2016-02-16  6:50 ` [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
  3 siblings, 0 replies; 9+ messages in thread
From: Thomas Monjalon @ 2016-02-05 14:54 UTC (permalink / raw)
  To: bruce.richardson, remy.horton; +Cc: dev

When building for ARM some examples were failing to compile because
of some dependencies disabled.
Declaring these dependencies prevent from trying to compile some
not supported examples.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 examples/Makefile | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/examples/Makefile b/examples/Makefile
index 1cb4785..1665df1 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -46,21 +46,25 @@ endif
 DIRS-y += ethtool
 DIRS-y += exception_path
 DIRS-y += helloworld
-DIRS-y += ip_pipeline
-DIRS-y += ip_reassembly
+DIRS-$(CONFIG_RTE_LIBRTE_PIPELINE) += ip_pipeline
+ifeq ($(CONFIG_RTE_LIBRTE_LPM),y)
+DIRS-$(CONFIG_RTE_IP_FRAG) += ip_reassembly
 DIRS-$(CONFIG_RTE_IP_FRAG) += ip_fragmentation
+endif
 DIRS-y += ipv4_multicast
 DIRS-$(CONFIG_RTE_LIBRTE_KNI) += kni
 DIRS-y += l2fwd
 DIRS-$(CONFIG_RTE_LIBRTE_IVSHMEM) += l2fwd-ivshmem
 DIRS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += l2fwd-jobstats
 DIRS-y += l2fwd-keepalive
-DIRS-y += l3fwd
+DIRS-$(CONFIG_RTE_LIBRTE_LPM) += l3fwd
 DIRS-$(CONFIG_RTE_LIBRTE_ACL) += l3fwd-acl
+ifeq ($(CONFIG_RTE_LIBRTE_LPM),y)
 DIRS-$(CONFIG_RTE_LIBRTE_POWER) += l3fwd-power
 DIRS-y += l3fwd-vf
+endif
 DIRS-y += link_status_interrupt
-DIRS-y += load_balancer
+DIRS-$(CONFIG_RTE_LIBRTE_LPM) += load_balancer
 DIRS-y += multi_process
 DIRS-y += netmap_compat/bridge
 DIRS-$(CONFIG_RTE_LIBRTE_REORDER) += packet_ordering
-- 
2.7.0

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

* Re: [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch
  2016-02-05 14:54 ` [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch Thomas Monjalon
@ 2016-02-05 15:07   ` Pattan, Reshma
  2016-02-05 15:15     ` Ananyev, Konstantin
  0 siblings, 1 reply; 9+ messages in thread
From: Pattan, Reshma @ 2016-02-05 15:07 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

Hi Thomas,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> Sent: Friday, February 5, 2016 2:54 PM
> To: Richardson, Bruce; Horton, Remy
> Cc: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch
> 
> _mm_prefetch is defined only in x86 compilers.
> rte_prefetch functions are defined in EAL for each arch, and must be preferred
> over compiler intrinsics.
> 
> Fixes: 07db4a975094 ("examples/distributor: new sample app")
> 
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> ---
>  examples/distributor/main.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/examples/distributor/main.c b/examples/distributor/main.c index
> 4e74f8f..87344ac 100644
> --- a/examples/distributor/main.c
> +++ b/examples/distributor/main.c
> @@ -335,13 +335,13 @@ lcore_tx(struct rte_ring *in_r)
> 
>  			/* for traffic we receive, queue it up for transmit */
>  			uint16_t i;
> -			_mm_prefetch((void *)bufs[0], 0);
> -			_mm_prefetch((void *)bufs[1], 0);
> -			_mm_prefetch((void *)bufs[2], 0);
> +			rte_prefetch0((void *)bufs[0]);
> +			rte_prefetch0((void *)bufs[1]);
> +			rte_prefetch0((void *)bufs[2]);

Some time back Jerin Jacob has sent patch for replacing the _mm_prefetch  with rte_prefetch_non_temporal. This is FYI.

Thanks,
Reshma

>  			for (i = 0; i < nb_rx; i++) {
>  				struct output_buffer *outbuf;
>  				uint8_t outp;
> -				_mm_prefetch((void *)bufs[i + 3], 0);
> +				rte_prefetch0((void *)bufs[i + 3]);
>  				/*
>  				 * workers should update in_port to hold the
>  				 * output port value
> --
> 2.7.0

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

* Re: [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch
  2016-02-05 15:07   ` Pattan, Reshma
@ 2016-02-05 15:15     ` Ananyev, Konstantin
  2016-02-05 15:55       ` Thomas Monjalon
  0 siblings, 1 reply; 9+ messages in thread
From: Ananyev, Konstantin @ 2016-02-05 15:15 UTC (permalink / raw)
  To: Pattan, Reshma, Thomas Monjalon; +Cc: dev



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Pattan, Reshma
> Sent: Friday, February 05, 2016 3:08 PM
> To: Thomas Monjalon
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch
> 
> Hi Thomas,
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> > Sent: Friday, February 5, 2016 2:54 PM
> > To: Richardson, Bruce; Horton, Remy
> > Cc: dev@dpdk.org
> > Subject: [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch
> >
> > _mm_prefetch is defined only in x86 compilers.
> > rte_prefetch functions are defined in EAL for each arch, and must be preferred
> > over compiler intrinsics.
> >
> > Fixes: 07db4a975094 ("examples/distributor: new sample app")
> >
> > Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> > ---
> >  examples/distributor/main.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/examples/distributor/main.c b/examples/distributor/main.c index
> > 4e74f8f..87344ac 100644
> > --- a/examples/distributor/main.c
> > +++ b/examples/distributor/main.c
> > @@ -335,13 +335,13 @@ lcore_tx(struct rte_ring *in_r)
> >
> >  			/* for traffic we receive, queue it up for transmit */
> >  			uint16_t i;
> > -			_mm_prefetch((void *)bufs[0], 0);
> > -			_mm_prefetch((void *)bufs[1], 0);
> > -			_mm_prefetch((void *)bufs[2], 0);
> > +			rte_prefetch0((void *)bufs[0]);
> > +			rte_prefetch0((void *)bufs[1]);
> > +			rte_prefetch0((void *)bufs[2]);
> 
> Some time back Jerin Jacob has sent patch for replacing the _mm_prefetch  with rte_prefetch_non_temporal. This is FYI.

Yep:
http://dpdk.org/dev/patchwork/patch/9369/
http://dpdk.org/dev/patchwork/patch/9370/

And on IA _mm_prefetch(p, 0) != rte_prefetch0(p).
I think, as in Jacob implementation, it should be PREFETCHNTA.
Konstantin

> 
> Thanks,
> Reshma
> 
> >  			for (i = 0; i < nb_rx; i++) {
> >  				struct output_buffer *outbuf;
> >  				uint8_t outp;
> > -				_mm_prefetch((void *)bufs[i + 3], 0);
> > +				rte_prefetch0((void *)bufs[i + 3]);
> >  				/*
> >  				 * workers should update in_port to hold the
> >  				 * output port value
> > --
> > 2.7.0

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

* Re: [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch
  2016-02-05 15:15     ` Ananyev, Konstantin
@ 2016-02-05 15:55       ` Thomas Monjalon
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Monjalon @ 2016-02-05 15:55 UTC (permalink / raw)
  To: Ananyev, Konstantin; +Cc: dev

2016-02-05 15:15, Ananyev, Konstantin:
> From: Pattan, Reshma
> > From: Thomas Monjalon
> > > _mm_prefetch is defined only in x86 compilers.
> > > rte_prefetch functions are defined in EAL for each arch, and must be preferred
> > > over compiler intrinsics.
[...]
> > > -			_mm_prefetch((void *)bufs[0], 0);
> > > -			_mm_prefetch((void *)bufs[1], 0);
> > > -			_mm_prefetch((void *)bufs[2], 0);
> > > +			rte_prefetch0((void *)bufs[0]);
> > > +			rte_prefetch0((void *)bufs[1]);
> > > +			rte_prefetch0((void *)bufs[2]);
> > 
> > Some time back Jerin Jacob has sent patch for replacing the _mm_prefetch  with rte_prefetch_non_temporal. This is FYI.
> 
> Yep:
> http://dpdk.org/dev/patchwork/patch/9369/
> http://dpdk.org/dev/patchwork/patch/9370/
> 
> And on IA _mm_prefetch(p, 0) != rte_prefetch0(p).
> I think, as in Jacob implementation, it should be PREFETCHNTA.

Oh yes, you're right. Thanks
patch rejected

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

* Re: [dpdk-dev] [PATCH 2/3] examples/ethtool: fix build
  2016-02-05 14:54 ` [dpdk-dev] [PATCH 2/3] examples/ethtool: fix build Thomas Monjalon
@ 2016-02-15 11:15   ` Remy Horton
  0 siblings, 0 replies; 9+ messages in thread
From: Remy Horton @ 2016-02-15 11:15 UTC (permalink / raw)
  To: Thomas Monjalon, bruce.richardson; +Cc: dev


On 05/02/2016 14:54, Thomas Monjalon wrote:
> When building for ARM, the spinlock structure was not found.
> It appears to be a mismatch with rwlock which is not used in this file.
>
> Fixes: bda68ab9d1e7 ("examples/ethtool: add user-space ethtool sample application")
>
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> ---
>   examples/ethtool/ethtool-app/main.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

Acked-by: Remy Horton <remy.horton@intel.com>

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

* Re: [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM
  2016-02-05 14:54 [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
                   ` (2 preceding siblings ...)
  2016-02-05 14:54 ` [dpdk-dev] [PATCH 3/3] examples: fix build dependencies Thomas Monjalon
@ 2016-02-16  6:50 ` Thomas Monjalon
  3 siblings, 0 replies; 9+ messages in thread
From: Thomas Monjalon @ 2016-02-16  6:50 UTC (permalink / raw)
  To: dev

2016-02-05 15:54, Thomas Monjalon:
> Thomas Monjalon (3):
>   examples/distributor: fix build for non-x86 arch
>   examples/ethtool: fix build
>   examples: fix build dependencies

Patch 1 is rejected. Others are re-sent in this series:
http://dpdk.org/ml/archives/dev/2016-February/033223.html

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

end of thread, other threads:[~2016-02-16  6:52 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-05 14:54 [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
2016-02-05 14:54 ` [dpdk-dev] [PATCH 1/3] examples/distributor: fix build for non-x86 arch Thomas Monjalon
2016-02-05 15:07   ` Pattan, Reshma
2016-02-05 15:15     ` Ananyev, Konstantin
2016-02-05 15:55       ` Thomas Monjalon
2016-02-05 14:54 ` [dpdk-dev] [PATCH 2/3] examples/ethtool: fix build Thomas Monjalon
2016-02-15 11:15   ` Remy Horton
2016-02-05 14:54 ` [dpdk-dev] [PATCH 3/3] examples: fix build dependencies Thomas Monjalon
2016-02-16  6:50 ` [dpdk-dev] [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).