Message ID | 1448980014-31548-1-git-send-email-christian.ehrhardt@canonical.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 4C0E48D89; Tue, 1 Dec 2015 15:26:57 +0100 (CET) Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by dpdk.org (Postfix) with ESMTP id 127DB8D89 for <dev@dpdk.org>; Tue, 1 Dec 2015 15:26:56 +0100 (CET) Received: from [10.172.196.172] (helo=Weiknorze.fritz.box) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from <christian.ehrhardt@canonical.com>) id 1a3ltP-0001zc-Tf; Tue, 01 Dec 2015 14:26:55 +0000 From: Christian Ehrhardt <christian.ehrhardt@canonical.com> To: dev@dpdk.org Date: Tue, 1 Dec 2015 15:26:54 +0100 Message-Id: <1448980014-31548-1-git-send-email-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH] mk: bump minimum march in default machine X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Commit Message
Christian Ehrhardt
Dec. 1, 2015, 2:26 p.m. UTC
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]
Comments
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 -
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 -
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