DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] mk: bump minimum march in default machine
@ 2015-12-01 14:26 Christian Ehrhardt
  2015-12-01 14:32 ` Panu Matilainen
  0 siblings, 1 reply; 3+ messages in thread
From: Christian Ehrhardt @ 2015-12-01 14:26 UTC (permalink / raw)
  To: dev

While playing with building 2.2-rc2 I found that our usual way didn't work
anymore.
We usually configured "make config T=x86_64-native-linuxapp-gcc" but then
set CONFIG_RTE_MACHINE="default" to get something like the "lowest acceptable
build" but with that wide CPU copatibility.

I found that with DPDK 2.2 this fails with issues like:
In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:37:0,
from dpdk-2.2.0-rc2/lib/librte_sched/rte_sched.c:56:
dpdk-2.2.0-rc2/lib/librte_sched/rte_sched.c: In function ‘grinder_pipe_exists’:
/usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:67:1: error: inlining
failed in call to always_inline ‘_mm_testz_si128’: target specific option
mismatch
 _mm_testz_si128 (__m128i __M, __m128i __V)
 ^
This is a hard need on newer SSE4.x features which are not given with
march=core2.

So if nehalem (the next march level which has SSE4.x) is the new minimum let us
set this in the default machine config.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---

[diffstat]
 rte.vars.mk |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

[diff]
diff --git a/mk/machine/default/rte.vars.mk b/mk/machine/default/rte.vars.mk
index 53c6af6..170d880 100644
--- a/mk/machine/default/rte.vars.mk
+++ b/mk/machine/default/rte.vars.mk
@@ -55,4 +55,4 @@
 # CPU_LDFLAGS =
 # CPU_ASFLAGS =
 
-MACHINE_CFLAGS += -march=core2
+MACHINE_CFLAGS += -march=nehalem

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

* Re: [dpdk-dev] [PATCH] mk: bump minimum march in default machine
  2015-12-01 14:26 [dpdk-dev] [PATCH] mk: bump minimum march in default machine Christian Ehrhardt
@ 2015-12-01 14:32 ` Panu Matilainen
  2015-12-01 15:08   ` Christian Ehrhardt
  0 siblings, 1 reply; 3+ messages in thread
From: Panu Matilainen @ 2015-12-01 14:32 UTC (permalink / raw)
  To: Christian Ehrhardt, dev

On 12/01/2015 04:26 PM, Christian Ehrhardt wrote:
> While playing with building 2.2-rc2 I found that our usual way didn't work
> anymore.
> We usually configured "make config T=x86_64-native-linuxapp-gcc" but then
> set CONFIG_RTE_MACHINE="default" to get something like the "lowest acceptable
> build" but with that wide CPU copatibility.
>
> I found that with DPDK 2.2 this fails with issues like:
> In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:37:0,
> from dpdk-2.2.0-rc2/lib/librte_sched/rte_sched.c:56:
> dpdk-2.2.0-rc2/lib/librte_sched/rte_sched.c: In function ‘grinder_pipe_exists’:
> /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:67:1: error: inlining
> failed in call to always_inline ‘_mm_testz_si128’: target specific option
> mismatch
>   _mm_testz_si128 (__m128i __M, __m128i __V)
>   ^
> This is a hard need on newer SSE4.x features which are not given with
> march=core2.
>
> So if nehalem (the next march level which has SSE4.x) is the new minimum let us
> set this in the default machine config.
>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> ---
>
> [diffstat]
>   rte.vars.mk |    2 +-
>    1 file changed, 1 insertion(+), 1 deletion(-)
>
> [diff]
> diff --git a/mk/machine/default/rte.vars.mk b/mk/machine/default/rte.vars.mk
> index 53c6af6..170d880 100644
> --- a/mk/machine/default/rte.vars.mk
> +++ b/mk/machine/default/rte.vars.mk
> @@ -55,4 +55,4 @@
>   # CPU_LDFLAGS =
>   # CPU_ASFLAGS =
>
> -MACHINE_CFLAGS += -march=core2
> +MACHINE_CFLAGS += -march=nehalem
>

You can just disable CONFIG_RTE_SCHED_VECTOR instead. Also see 
http://dpdk.org/ml/archives/dev/2015-November/029067.html

	- Panu -

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

* Re: [dpdk-dev] [PATCH] mk: bump minimum march in default machine
  2015-12-01 14:32 ` Panu Matilainen
@ 2015-12-01 15:08   ` Christian Ehrhardt
  0 siblings, 0 replies; 3+ messages in thread
From: Christian Ehrhardt @ 2015-12-01 15:08 UTC (permalink / raw)
  To: Panu Matilainen; +Cc: dev

Hi,
thanks!
I didn't have the insight of it being "lightly tested and doesn't
provide really significant performance improvement".
But probably we then should go for the suggestion of the referred mail
of "it should probably be disabled by default on all platforms".

I'll submit a patch for that then in a few minutes.
Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd


On Tue, Dec 1, 2015 at 3:32 PM, Panu Matilainen <pmatilai@redhat.com> wrote:
> On 12/01/2015 04:26 PM, Christian Ehrhardt wrote:
>>
>> While playing with building 2.2-rc2 I found that our usual way didn't work
>> anymore.
>> We usually configured "make config T=x86_64-native-linuxapp-gcc" but then
>> set CONFIG_RTE_MACHINE="default" to get something like the "lowest
>> acceptable
>> build" but with that wide CPU copatibility.
>>
>> I found that with DPDK 2.2 this fails with issues like:
>> In file included from
>> /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:37:0,
>> from dpdk-2.2.0-rc2/lib/librte_sched/rte_sched.c:56:
>> dpdk-2.2.0-rc2/lib/librte_sched/rte_sched.c: In function
>> ‘grinder_pipe_exists’:
>> /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin.h:67:1: error: inlining
>> failed in call to always_inline ‘_mm_testz_si128’: target specific option
>> mismatch
>>   _mm_testz_si128 (__m128i __M, __m128i __V)
>>   ^
>> This is a hard need on newer SSE4.x features which are not given with
>> march=core2.
>>
>> So if nehalem (the next march level which has SSE4.x) is the new minimum
>> let us
>> set this in the default machine config.
>>
>> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
>> ---
>>
>> [diffstat]
>>   rte.vars.mk |    2 +-
>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> [diff]
>> diff --git a/mk/machine/default/rte.vars.mk
>> b/mk/machine/default/rte.vars.mk
>> index 53c6af6..170d880 100644
>> --- a/mk/machine/default/rte.vars.mk
>> +++ b/mk/machine/default/rte.vars.mk
>> @@ -55,4 +55,4 @@
>>   # CPU_LDFLAGS =
>>   # CPU_ASFLAGS =
>>
>> -MACHINE_CFLAGS += -march=core2
>> +MACHINE_CFLAGS += -march=nehalem
>>
>
> You can just disable CONFIG_RTE_SCHED_VECTOR instead. Also see
> http://dpdk.org/ml/archives/dev/2015-November/029067.html
>
>         - Panu -

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

end of thread, other threads:[~2015-12-01 15:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-01 14:26 [dpdk-dev] [PATCH] mk: bump minimum march in default machine Christian Ehrhardt
2015-12-01 14:32 ` Panu Matilainen
2015-12-01 15:08   ` Christian Ehrhardt

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).