* [dpdk-dev] [PATCH v2 0/4] fix examples build
@ 2016-02-16 6:46 Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 1/4] examples/l3fwd: fix build without SSE4.1 Thomas Monjalon
` (4 more replies)
0 siblings, 5 replies; 15+ messages in thread
From: Thomas Monjalon @ 2016-02-16 6:46 UTC (permalink / raw)
To: dev
I've sent some patchsets previously to fixes examples:
- "fix build for default machine"
- "fix compilation of examples for ARM"
Gather the non-rejected patches of these series here.
Thomas Monjalon (4):
examples/l3fwd: fix build without SSE4.1
examples/ip_pipeline: fix build for x86_64 without SSE4.2
examples/ethtool: fix build
examples: fix build dependencies
examples/Makefile | 12 ++++++++----
examples/ethtool/ethtool-app/main.c | 2 +-
examples/ip_pipeline/pipeline/hash_func.h | 2 +-
examples/l3fwd/main.c | 3 ++-
4 files changed, 12 insertions(+), 7 deletions(-)
--
2.7.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [dpdk-dev] [PATCH v2 1/4] examples/l3fwd: fix build without SSE4.1
2016-02-16 6:46 [dpdk-dev] [PATCH v2 0/4] fix examples build Thomas Monjalon
@ 2016-02-16 6:46 ` Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2 Thomas Monjalon
` (3 subsequent siblings)
4 siblings, 0 replies; 15+ messages in thread
From: Thomas Monjalon @ 2016-02-16 6:46 UTC (permalink / raw)
To: dev
clang reports this error:
examples/l3fwd/main.c:550:1: error: unused function 'send_packetsx4'
The function is used only when ENABLE_MULTI_BUFFER_OPTIMIZE is 1.
Fixes: 96ff445371e0 ("examples/l3fwd: reorganise and optimize LPM code path")
Fixes: 6f1c1e28d98e ("examples/l3fwd: fix build with exact-match enabled")
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
examples/l3fwd/main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
index c35926d..410f72d 100644
--- a/examples/l3fwd/main.c
+++ b/examples/l3fwd/main.c
@@ -545,7 +545,8 @@ send_single_packet(struct rte_mbuf *m, uint8_t port)
return 0;
}
-#if (APP_LOOKUP_METHOD == APP_LOOKUP_LPM)
+#if ((APP_LOOKUP_METHOD == APP_LOOKUP_LPM) && \
+ (ENABLE_MULTI_BUFFER_OPTIMIZE == 1))
static inline __attribute__((always_inline)) void
send_packetsx4(struct lcore_conf *qconf, uint8_t port,
struct rte_mbuf *m[], uint32_t num)
--
2.7.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
2016-02-16 6:46 [dpdk-dev] [PATCH v2 0/4] fix examples build Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 1/4] examples/l3fwd: fix build without SSE4.1 Thomas Monjalon
@ 2016-02-16 6:46 ` Thomas Monjalon
2016-03-30 13:24 ` Dumitrescu, Cristian
2016-03-30 13:57 ` Dumitrescu, Cristian
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 3/4] examples/ethtool: fix build Thomas Monjalon
` (2 subsequent siblings)
4 siblings, 2 replies; 15+ messages in thread
From: Thomas Monjalon @ 2016-02-16 6:46 UTC (permalink / raw)
To: dev
The compiler cannot use _mm_crc32_u64:
examples/ip_pipeline/pipeline/hash_func.h:165:9:
error: implicit declaration of function '_mm_crc32_u64' is invalid in C99
Fixes: 947024a26df7 ("examples/ip_pipeline: rework passthrough pipeline")
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
examples/ip_pipeline/pipeline/hash_func.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/ip_pipeline/pipeline/hash_func.h b/examples/ip_pipeline/pipeline/hash_func.h
index 7846300..1953ad4 100644
--- a/examples/ip_pipeline/pipeline/hash_func.h
+++ b/examples/ip_pipeline/pipeline/hash_func.h
@@ -152,7 +152,7 @@ hash_xor_key64(void *key, __rte_unused uint32_t key_size, uint64_t seed)
return (xor0 >> 32) ^ xor0;
}
-#if defined(__x86_64__)
+#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
#include <x86intrin.h>
--
2.7.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* [dpdk-dev] [PATCH v2 3/4] examples/ethtool: fix build
2016-02-16 6:46 [dpdk-dev] [PATCH v2 0/4] fix examples build Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 1/4] examples/l3fwd: fix build without SSE4.1 Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2 Thomas Monjalon
@ 2016-02-16 6:46 ` Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 4/4] examples: fix build dependencies Thomas Monjalon
2016-02-16 6:56 ` [dpdk-dev] [PATCH v2 0/4] fix examples build Thomas Monjalon
4 siblings, 0 replies; 15+ messages in thread
From: Thomas Monjalon @ 2016-02-16 6:46 UTC (permalink / raw)
To: 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>
Acked-by: Remy Horton <remy.horton@intel.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] 15+ messages in thread
* [dpdk-dev] [PATCH v2 4/4] examples: fix build dependencies
2016-02-16 6:46 [dpdk-dev] [PATCH v2 0/4] fix examples build Thomas Monjalon
` (2 preceding siblings ...)
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 3/4] examples/ethtool: fix build Thomas Monjalon
@ 2016-02-16 6:46 ` Thomas Monjalon
2016-02-16 6:56 ` [dpdk-dev] [PATCH v2 0/4] fix examples build Thomas Monjalon
4 siblings, 0 replies; 15+ messages in thread
From: Thomas Monjalon @ 2016-02-16 6:46 UTC (permalink / raw)
To: 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] 15+ messages in thread
* Re: [dpdk-dev] [PATCH v2 0/4] fix examples build
2016-02-16 6:46 [dpdk-dev] [PATCH v2 0/4] fix examples build Thomas Monjalon
` (3 preceding siblings ...)
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 4/4] examples: fix build dependencies Thomas Monjalon
@ 2016-02-16 6:56 ` Thomas Monjalon
4 siblings, 0 replies; 15+ messages in thread
From: Thomas Monjalon @ 2016-02-16 6:56 UTC (permalink / raw)
To: dev
2016-02-16 07:46, Thomas Monjalon:
> I've sent some patchsets previously to fixes examples:
> - "fix build for default machine"
> - "fix compilation of examples for ARM"
>
> Gather the non-rejected patches of these series here.
>
> Thomas Monjalon (4):
> examples/l3fwd: fix build without SSE4.1
> examples/ip_pipeline: fix build for x86_64 without SSE4.2
> examples/ethtool: fix build
> examples: fix build dependencies
Applied
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2 Thomas Monjalon
@ 2016-03-30 13:24 ` Dumitrescu, Cristian
2016-03-30 13:58 ` Thomas Monjalon
2016-03-30 13:57 ` Dumitrescu, Cristian
1 sibling, 1 reply; 15+ messages in thread
From: Dumitrescu, Cristian @ 2016-03-30 13:24 UTC (permalink / raw)
To: Thomas Monjalon, dev; +Cc: Singh, Jasvinder, Zhang, Roy Fan, Hunt, David
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> Sent: Tuesday, February 16, 2016 6:46 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for
> x86_64 without SSE4.2
>
> The compiler cannot use _mm_crc32_u64:
>
> examples/ip_pipeline/pipeline/hash_func.h:165:9:
> error: implicit declaration of function '_mm_crc32_u64' is invalid in C99
>
> Fixes: 947024a26df7 ("examples/ip_pipeline: rework passthrough pipeline")
>
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> ---
> examples/ip_pipeline/pipeline/hash_func.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/examples/ip_pipeline/pipeline/hash_func.h
> b/examples/ip_pipeline/pipeline/hash_func.h
> index 7846300..1953ad4 100644
> --- a/examples/ip_pipeline/pipeline/hash_func.h
> +++ b/examples/ip_pipeline/pipeline/hash_func.h
> @@ -152,7 +152,7 @@ hash_xor_key64(void *key, __rte_unused uint32_t
> key_size, uint64_t seed)
> return (xor0 >> 32) ^ xor0;
> }
>
> -#if defined(__x86_64__)
> +#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
>
> #include <x86intrin.h>
>
> --
> 2.7.0
Hi Thomas,
This is not the correct fix, as RTE_CPUFLAG_SSE4_2 is a flag that can only be tested at run-time (as result of calling function rte_cpu_get_flag_enabled()), not at build-time.
The reason it appears to fix the build issue you are mentioning is the fact that this change results in disabling the __x86_64__ code branch.
We need to revert this patch and look for a better option.
What is the compiler that generates the build issue you are mentioning? We could not reproduce it with gcc 5 (gcc 5.3.1).
Thanks,
Cristian
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2 Thomas Monjalon
2016-03-30 13:24 ` Dumitrescu, Cristian
@ 2016-03-30 13:57 ` Dumitrescu, Cristian
2016-03-30 14:06 ` Thomas Monjalon
1 sibling, 1 reply; 15+ messages in thread
From: Dumitrescu, Cristian @ 2016-03-30 13:57 UTC (permalink / raw)
To: Thomas Monjalon, dev; +Cc: Singh, Jasvinder, Zhang, Roy Fan, Hunt, David
> -----Original Message-----
> From: Dumitrescu, Cristian
> Sent: Wednesday, March 30, 2016 2:24 PM
> To: 'Thomas Monjalon' <thomas.monjalon@6wind.com>; dev@dpdk.org
> Cc: Singh, Jasvinder <jasvinder.singh@intel.com>; Zhang, Roy Fan
> <roy.fan.zhang@intel.com>; Hunt, David <david.hunt@intel.com>
> Subject: RE: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for
> x86_64 without SSE4.2
> Importance: High
>
>
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> > Sent: Tuesday, February 16, 2016 6:46 AM
> > To: dev@dpdk.org
> > Subject: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for
> > x86_64 without SSE4.2
> >
> > The compiler cannot use _mm_crc32_u64:
> >
> > examples/ip_pipeline/pipeline/hash_func.h:165:9:
> > error: implicit declaration of function '_mm_crc32_u64' is invalid in C99
> >
> > Fixes: 947024a26df7 ("examples/ip_pipeline: rework passthrough
> pipeline")
> >
> > Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> > ---
> > examples/ip_pipeline/pipeline/hash_func.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/examples/ip_pipeline/pipeline/hash_func.h
> > b/examples/ip_pipeline/pipeline/hash_func.h
> > index 7846300..1953ad4 100644
> > --- a/examples/ip_pipeline/pipeline/hash_func.h
> > +++ b/examples/ip_pipeline/pipeline/hash_func.h
> > @@ -152,7 +152,7 @@ hash_xor_key64(void *key, __rte_unused uint32_t
> > key_size, uint64_t seed)
> > return (xor0 >> 32) ^ xor0;
> > }
> >
> > -#if defined(__x86_64__)
> > +#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
> >
> > #include <x86intrin.h>
> >
> > --
> > 2.7.0
>
> Hi Thomas,
>
> This is not the correct fix, as RTE_CPUFLAG_SSE4_2 is a flag that can only be
> tested at run-time (as result of calling function rte_cpu_get_flag_enabled()),
> not at build-time.
>
> The reason it appears to fix the build issue you are mentioning is the fact that
> this change results in disabling the __x86_64__ code branch.
>
> We need to revert this patch and look for a better option.
>
> What is the compiler that generates the build issue you are mentioning? We
> could not reproduce it with gcc 5 (gcc 5.3.1).
>
> Thanks,
> Cristian
I think the correct fix is:
#if defined(__x86_64__) && (defined(RTE_MACHINE_CPUFLAG_SSE4_2) || defined(RTE_MACHINE_CPUFLAG_CRC32))
We'll test it and send a patch asap.
Thanks,
Cristian
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
2016-03-30 13:24 ` Dumitrescu, Cristian
@ 2016-03-30 13:58 ` Thomas Monjalon
0 siblings, 0 replies; 15+ messages in thread
From: Thomas Monjalon @ 2016-03-30 13:58 UTC (permalink / raw)
To: Dumitrescu, Cristian; +Cc: dev, Singh, Jasvinder, Zhang, Roy Fan, Hunt, David
2016-03-30 13:24, Dumitrescu, Cristian:
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> > The compiler cannot use _mm_crc32_u64:
> >
> > examples/ip_pipeline/pipeline/hash_func.h:165:9:
> > error: implicit declaration of function '_mm_crc32_u64' is invalid in C99
> >
> > Fixes: 947024a26df7 ("examples/ip_pipeline: rework passthrough pipeline")
> >
> > Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
[...]
> > -#if defined(__x86_64__)
> > +#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
>
> Hi Thomas,
>
> This is not the correct fix, as RTE_CPUFLAG_SSE4_2 is a flag that can
> only be tested at run-time (as result of calling function
> rte_cpu_get_flag_enabled()), not at build-time.
Yes you're right. It is an error, the word MACHINE is missing.
The flag should be RTE_MACHINE_CPUFLAG_SSE4_2.
> The reason it appears to fix the build issue you are mentioning is the fact
> that this change results in disabling the __x86_64__ code branch.
>
> We need to revert this patch and look for a better option.
>
> What is the compiler that generates the build issue you are mentioning?
> We could not reproduce it with gcc 5 (gcc 5.3.1).
It fails with gcc-5.2.0 and clang-3.6.2 for machine "default".
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
2016-03-30 13:57 ` Dumitrescu, Cristian
@ 2016-03-30 14:06 ` Thomas Monjalon
2016-03-30 14:15 ` Dumitrescu, Cristian
0 siblings, 1 reply; 15+ messages in thread
From: Thomas Monjalon @ 2016-03-30 14:06 UTC (permalink / raw)
To: Dumitrescu, Cristian; +Cc: dev, Singh, Jasvinder, Zhang, Roy Fan, Hunt, David
2016-03-30 13:57, Dumitrescu, Cristian:
> I think the correct fix is:
> #if defined(__x86_64__) && (defined(RTE_MACHINE_CPUFLAG_SSE4_2) || defined(RTE_MACHINE_CPUFLAG_CRC32))
>
> We'll test it and send a patch asap.
I had prepared this patch. Please be inspired:
examples/ip_pipeline: fix SSE4.2 optimization branch
The branch was disabled because of a typo in the SSE4.2 flag.
Change also the x86_64 flag to use a DPDK one.
Fixes: 28377375c6c0 ("examples/ip_pipeline: fix build for x86_64 without SSE4.2")
-#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
+#if defined(RTE_ARCH_X86_64) && defined(RTE_MACHINE_CPUFLAG_SSE4_2)
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
2016-03-30 14:06 ` Thomas Monjalon
@ 2016-03-30 14:15 ` Dumitrescu, Cristian
2016-03-30 15:50 ` Thomas Monjalon
0 siblings, 1 reply; 15+ messages in thread
From: Dumitrescu, Cristian @ 2016-03-30 14:15 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, Singh, Jasvinder, Zhang, Roy Fan, Hunt, David
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Wednesday, March 30, 2016 3:07 PM
> To: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Cc: dev@dpdk.org; Singh, Jasvinder <jasvinder.singh@intel.com>; Zhang,
> Roy Fan <roy.fan.zhang@intel.com>; Hunt, David <david.hunt@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for
> x86_64 without SSE4.2
>
> 2016-03-30 13:57, Dumitrescu, Cristian:
> > I think the correct fix is:
> > #if defined(__x86_64__) && (defined(RTE_MACHINE_CPUFLAG_SSE4_2)
> || defined(RTE_MACHINE_CPUFLAG_CRC32))
> >
> > We'll test it and send a patch asap.
>
> I had prepared this patch. Please be inspired:
>
> examples/ip_pipeline: fix SSE4.2 optimization branch
>
> The branch was disabled because of a typo in the SSE4.2 flag.
> Change also the x86_64 flag to use a DPDK one.
>
> Fixes: 28377375c6c0 ("examples/ip_pipeline: fix build for x86_64 without
> SSE4.2")
>
> -#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
> +#if defined(RTE_ARCH_X86_64) &&
> defined(RTE_MACHINE_CPUFLAG_SSE4_2)
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
2016-03-30 14:15 ` Dumitrescu, Cristian
@ 2016-03-30 15:50 ` Thomas Monjalon
2016-03-30 16:31 ` Dumitrescu, Cristian
0 siblings, 1 reply; 15+ messages in thread
From: Thomas Monjalon @ 2016-03-30 15:50 UTC (permalink / raw)
To: Dumitrescu, Cristian; +Cc: dev, Singh, Jasvinder, Zhang, Roy Fan, Hunt, David
2016-03-30 14:15, Dumitrescu, Cristian:
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > 2016-03-30 13:57, Dumitrescu, Cristian:
> > > I think the correct fix is:
> > > #if defined(__x86_64__) && (defined(RTE_MACHINE_CPUFLAG_SSE4_2)
> > || defined(RTE_MACHINE_CPUFLAG_CRC32))
> > >
> > > We'll test it and send a patch asap.
> >
> > I had prepared this patch. Please be inspired:
> >
> > examples/ip_pipeline: fix SSE4.2 optimization branch
> >
> > The branch was disabled because of a typo in the SSE4.2 flag.
> > Change also the x86_64 flag to use a DPDK one.
> >
> > Fixes: 28377375c6c0 ("examples/ip_pipeline: fix build for x86_64 without
> > SSE4.2")
> >
> > -#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
> > +#if defined(RTE_ARCH_X86_64) &&
> > defined(RTE_MACHINE_CPUFLAG_SSE4_2)
>
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
I thought you wanted to send a patch with another CPUFLAG (CRC32)?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
2016-03-30 15:50 ` Thomas Monjalon
@ 2016-03-30 16:31 ` Dumitrescu, Cristian
2016-03-30 18:06 ` [dpdk-dev] [PATCH] examples/ip_pipeline: fix SSE4.2 optimization branch Thomas Monjalon
0 siblings, 1 reply; 15+ messages in thread
From: Dumitrescu, Cristian @ 2016-03-30 16:31 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, Singh, Jasvinder, Zhang, Roy Fan, Hunt, David
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Wednesday, March 30, 2016 4:50 PM
> To: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Cc: dev@dpdk.org; Singh, Jasvinder <jasvinder.singh@intel.com>; Zhang,
> Roy Fan <roy.fan.zhang@intel.com>; Hunt, David <david.hunt@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for
> x86_64 without SSE4.2
>
> 2016-03-30 14:15, Dumitrescu, Cristian:
> > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > > 2016-03-30 13:57, Dumitrescu, Cristian:
> > > > I think the correct fix is:
> > > > #if defined(__x86_64__) &&
> (defined(RTE_MACHINE_CPUFLAG_SSE4_2)
> > > || defined(RTE_MACHINE_CPUFLAG_CRC32))
> > > >
> > > > We'll test it and send a patch asap.
> > >
> > > I had prepared this patch. Please be inspired:
> > >
> > > examples/ip_pipeline: fix SSE4.2 optimization branch
> > >
> > > The branch was disabled because of a typo in the SSE4.2 flag.
> > > Change also the x86_64 flag to use a DPDK one.
> > >
> > > Fixes: 28377375c6c0 ("examples/ip_pipeline: fix build for x86_64
> without
> > > SSE4.2")
> > >
> > > -#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
> > > +#if defined(RTE_ARCH_X86_64) &&
> > > defined(RTE_MACHINE_CPUFLAG_SSE4_2)
> >
> > Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
>
> I thought you wanted to send a patch with another CPUFLAG (CRC32)?
The extra flag is good, but not absolutely required, as SSE4.2 implies support for CRC32 instruction.
The CRC32 flag might be useful when a CPU architecture other than Intel supports the CRC32 instruction, but I am not sure whether such CPU architecture exists. Anyway, the SSE4.2 || CRC32 pattern is already present in several DPDK files, so I was looking to observe it as well.
I thought you considered the CRC32 flag to be redundant and decided to remove it on purpose.
I am OK if you want to go ahead with your patch right now, otherwise we can send a patch tomorrow?
Thanks,
Cristian
^ permalink raw reply [flat|nested] 15+ messages in thread
* [dpdk-dev] [PATCH] examples/ip_pipeline: fix SSE4.2 optimization branch
2016-03-30 16:31 ` Dumitrescu, Cristian
@ 2016-03-30 18:06 ` Thomas Monjalon
2016-03-31 20:49 ` Thomas Monjalon
0 siblings, 1 reply; 15+ messages in thread
From: Thomas Monjalon @ 2016-03-30 18:06 UTC (permalink / raw)
To: cristian.dumitrescu; +Cc: dev
The branch was disabled because of a typo in the SSE4.2 flag.
Change also the x86_64 flag to use a DPDK one.
Fixes: 28377375c6c0 ("examples/ip_pipeline: fix build for x86_64 without SSE4.2")
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
examples/ip_pipeline/pipeline/hash_func.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/ip_pipeline/pipeline/hash_func.h b/examples/ip_pipeline/pipeline/hash_func.h
index 1953ad4..9db7173 100644
--- a/examples/ip_pipeline/pipeline/hash_func.h
+++ b/examples/ip_pipeline/pipeline/hash_func.h
@@ -152,7 +152,7 @@ hash_xor_key64(void *key, __rte_unused uint32_t key_size, uint64_t seed)
return (xor0 >> 32) ^ xor0;
}
-#if defined(__x86_64__) && defined(RTE_CPUFLAG_SSE4_2)
+#if defined(RTE_ARCH_X86_64) && defined(RTE_MACHINE_CPUFLAG_SSE4_2)
#include <x86intrin.h>
--
2.7.0
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [dpdk-dev] [PATCH] examples/ip_pipeline: fix SSE4.2 optimization branch
2016-03-30 18:06 ` [dpdk-dev] [PATCH] examples/ip_pipeline: fix SSE4.2 optimization branch Thomas Monjalon
@ 2016-03-31 20:49 ` Thomas Monjalon
0 siblings, 0 replies; 15+ messages in thread
From: Thomas Monjalon @ 2016-03-31 20:49 UTC (permalink / raw)
To: cristian.dumitrescu; +Cc: dev
2016-03-30 20:06, Thomas Monjalon:
> The branch was disabled because of a typo in the SSE4.2 flag.
> Change also the x86_64 flag to use a DPDK one.
>
> Fixes: 28377375c6c0 ("examples/ip_pipeline: fix build for x86_64 without SSE4.2")
>
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Applied
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2016-03-31 20:51 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-16 6:46 [dpdk-dev] [PATCH v2 0/4] fix examples build Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 1/4] examples/l3fwd: fix build without SSE4.1 Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2 Thomas Monjalon
2016-03-30 13:24 ` Dumitrescu, Cristian
2016-03-30 13:58 ` Thomas Monjalon
2016-03-30 13:57 ` Dumitrescu, Cristian
2016-03-30 14:06 ` Thomas Monjalon
2016-03-30 14:15 ` Dumitrescu, Cristian
2016-03-30 15:50 ` Thomas Monjalon
2016-03-30 16:31 ` Dumitrescu, Cristian
2016-03-30 18:06 ` [dpdk-dev] [PATCH] examples/ip_pipeline: fix SSE4.2 optimization branch Thomas Monjalon
2016-03-31 20:49 ` Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 3/4] examples/ethtool: fix build Thomas Monjalon
2016-02-16 6:46 ` [dpdk-dev] [PATCH v2 4/4] examples: fix build dependencies Thomas Monjalon
2016-02-16 6:56 ` [dpdk-dev] [PATCH v2 0/4] fix examples build 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).