[dpdk-dev] [PATCH] mk: bump minimum march in default machine

Christian Ehrhardt christian.ehrhardt at canonical.com
Tue Dec 1 16:08:14 CET 2015


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 at 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 at 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 -


More information about the dev mailing list