All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] fix examples build
@ 2016-02-16  6:46 Thomas Monjalon
  2016-02-16  6:46 ` [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

* [PATCH v2 1/4] examples/l3fwd: fix build without SSE4.1
  2016-02-16  6:46 [PATCH v2 0/4] fix examples build Thomas Monjalon
@ 2016-02-16  6:46 ` Thomas Monjalon
  2016-02-16  6:46 ` [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 related	[flat|nested] 15+ messages in thread

* [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
  2016-02-16  6:46 [PATCH v2 0/4] fix examples build Thomas Monjalon
  2016-02-16  6:46 ` [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 ` [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 related	[flat|nested] 15+ messages in thread

* [PATCH v2 3/4] examples/ethtool: fix build
  2016-02-16  6:46 [PATCH v2 0/4] fix examples build Thomas Monjalon
  2016-02-16  6:46 ` [PATCH v2 1/4] examples/l3fwd: fix build without SSE4.1 Thomas Monjalon
  2016-02-16  6:46 ` [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 ` [PATCH v2 4/4] examples: fix build dependencies Thomas Monjalon
  2016-02-16  6:56 ` [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 related	[flat|nested] 15+ messages in thread

* [PATCH v2 4/4] examples: fix build dependencies
  2016-02-16  6:46 [PATCH v2 0/4] fix examples build Thomas Monjalon
                   ` (2 preceding siblings ...)
  2016-02-16  6:46 ` [PATCH v2 3/4] examples/ethtool: fix build Thomas Monjalon
@ 2016-02-16  6:46 ` Thomas Monjalon
  2016-02-16  6:56 ` [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 related	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/4] fix examples build
  2016-02-16  6:46 [PATCH v2 0/4] fix examples build Thomas Monjalon
                   ` (3 preceding siblings ...)
  2016-02-16  6:46 ` [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: [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
  2016-02-16  6:46 ` [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: [PATCH v2 2/4] examples/ip_pipeline: fix build for x86_64 without SSE4.2
  2016-02-16  6:46 ` [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: [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: [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: [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: [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: [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             ` [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

* [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 related	[flat|nested] 15+ messages in thread

* Re: [PATCH] examples/ip_pipeline: fix SSE4.2 optimization branch
  2016-03-30 18:06             ` [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 [PATCH v2 0/4] fix examples build Thomas Monjalon
2016-02-16  6:46 ` [PATCH v2 1/4] examples/l3fwd: fix build without SSE4.1 Thomas Monjalon
2016-02-16  6:46 ` [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             ` [PATCH] examples/ip_pipeline: fix SSE4.2 optimization branch Thomas Monjalon
2016-03-31 20:49               ` Thomas Monjalon
2016-02-16  6:46 ` [PATCH v2 3/4] examples/ethtool: fix build Thomas Monjalon
2016-02-16  6:46 ` [PATCH v2 4/4] examples: fix build dependencies Thomas Monjalon
2016-02-16  6:56 ` [PATCH v2 0/4] fix examples build 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.