* [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
* 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
* [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
* 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
* [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 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.