* [PATCH 0/3] fix compilation of examples for ARM
@ 2016-02-05 14:54 Thomas Monjalon
2016-02-05 14:54 ` [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
* [PATCH 1/3] examples/distributor: fix build for non-x86 arch
2016-02-05 14:54 [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 ` [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 related [flat|nested] 9+ messages in thread
* [PATCH 2/3] examples/ethtool: fix build
2016-02-05 14:54 [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
2016-02-05 14:54 ` [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 ` [PATCH 3/3] examples: fix build dependencies Thomas Monjalon
2016-02-16 6:50 ` [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 related [flat|nested] 9+ messages in thread
* [PATCH 3/3] examples: fix build dependencies
2016-02-05 14:54 [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
2016-02-05 14:54 ` [PATCH 1/3] examples/distributor: fix build for non-x86 arch Thomas Monjalon
2016-02-05 14:54 ` [PATCH 2/3] examples/ethtool: fix build Thomas Monjalon
@ 2016-02-05 14:54 ` Thomas Monjalon
2016-02-16 6:50 ` [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 related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] examples/distributor: fix build for non-x86 arch
2016-02-05 14:54 ` [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: [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: [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: [PATCH 2/3] examples/ethtool: fix build
2016-02-05 14:54 ` [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: [PATCH 0/3] fix compilation of examples for ARM
2016-02-05 14:54 [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
` (2 preceding siblings ...)
2016-02-05 14:54 ` [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 [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
2016-02-05 14:54 ` [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 ` [PATCH 2/3] examples/ethtool: fix build Thomas Monjalon
2016-02-15 11:15 ` Remy Horton
2016-02-05 14:54 ` [PATCH 3/3] examples: fix build dependencies Thomas Monjalon
2016-02-16 6:50 ` [PATCH 0/3] fix compilation of examples for ARM Thomas Monjalon
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.