DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] DPDK 2.1.0 build error: inlining failed in call to always_inline
@ 2015-08-20 17:35 Keith E. Fleming
  2015-08-21 10:54 ` Bruce Richardson
  0 siblings, 1 reply; 3+ messages in thread
From: Keith E. Fleming @ 2015-08-20 17:35 UTC (permalink / raw)
  To: dev

make config T=x86_64-native-linuxapp-gccsed -ri 's,(PMD_PCAP=).*,\1y,' build/.configmake
[root@neutron dpdk-2.1.0]# make 2>&1 | more
== Build lib
== Build lib/librte_compat
== Build lib/librte_eal
== Build lib/librte_eal/common
== Build lib/librte_eal/linuxapp
== Build lib/librte_eal/linuxapp/igb_uio
(cat /dev/null;   echo kernel//root/dpdk-2.1.0/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.ko;) > /root/dpdk-2.1.0/build/build
/lib/librte_eal/linuxapp/igb_uio/modules.order
  Building modules, stage 2.
  MODPOST 1 modules
== Build lib/librte_eal/linuxapp/eal
  CC eal_common_options.o
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/x86intrin.h:37:0,
                 from /root/dpdk-2.1.0/build/include/rte_vect.h:67,
                 from /root/dpdk-2.1.0/build/include/rte_memcpy.h:46,
                 from /root/dpdk-2.1.0/lib/librte_eal/common/eal_common_options.c:48:
/root/dpdk-2.1.0/build/include/rte_memcpy.h: In function ‘rte_memcpy’:
/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/tmmintrin.h:185:1: error: inlining failed in call to always_inline ‘_mm_alignr_epi8’: t
arget specific option mismatch
 _mm_alignr_epi8(__m128i __X, __m128i __Y, const int __N)
 ^
In file included from /root/dpdk-2.1.0/lib/librte_eal/common/eal_common_options.c:48:0:
/root/dpdk-2.1.0/build/include/rte_memcpy.h:425:9: error: called from here

I can't even guess at what the problem is here. It's a total trainwreck. I assume this has compiled successfully for someone somewhere? Thanks

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

* Re: [dpdk-dev] DPDK 2.1.0 build error: inlining failed in call to always_inline
  2015-08-20 17:35 [dpdk-dev] DPDK 2.1.0 build error: inlining failed in call to always_inline Keith E. Fleming
@ 2015-08-21 10:54 ` Bruce Richardson
  2015-08-21 15:13   ` Keith E. Fleming
  0 siblings, 1 reply; 3+ messages in thread
From: Bruce Richardson @ 2015-08-21 10:54 UTC (permalink / raw)
  To: Keith E. Fleming; +Cc: dev

On Thu, Aug 20, 2015 at 05:35:10PM +0000, Keith E. Fleming wrote:
> make config T=x86_64-native-linuxapp-gccsed -ri 's,(PMD_PCAP=).*,\1y,' build/.configmake
> [root@neutron dpdk-2.1.0]# make 2>&1 | more
> == Build lib
> == Build lib/librte_compat
> == Build lib/librte_eal
> == Build lib/librte_eal/common
> == Build lib/librte_eal/linuxapp
> == Build lib/librte_eal/linuxapp/igb_uio
> (cat /dev/null;   echo kernel//root/dpdk-2.1.0/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.ko;) > /root/dpdk-2.1.0/build/build
> /lib/librte_eal/linuxapp/igb_uio/modules.order
>   Building modules, stage 2.
>   MODPOST 1 modules
> == Build lib/librte_eal/linuxapp/eal
>   CC eal_common_options.o
> In file included from /usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/x86intrin.h:37:0,
>                  from /root/dpdk-2.1.0/build/include/rte_vect.h:67,
>                  from /root/dpdk-2.1.0/build/include/rte_memcpy.h:46,
>                  from /root/dpdk-2.1.0/lib/librte_eal/common/eal_common_options.c:48:
> /root/dpdk-2.1.0/build/include/rte_memcpy.h: In function ‘rte_memcpy’:
> /usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/tmmintrin.h:185:1: error: inlining failed in call to always_inline ‘_mm_alignr_epi8’: t
> arget specific option mismatch
>  _mm_alignr_epi8(__m128i __X, __m128i __Y, const int __N)
>  ^
> In file included from /root/dpdk-2.1.0/lib/librte_eal/common/eal_common_options.c:48:0:
> /root/dpdk-2.1.0/build/include/rte_memcpy.h:425:9: error: called from here
> 
> I can't even guess at what the problem is here. It's a total trainwreck. I assume this has compiled successfully for someone somewhere? Thanks

What OS platform is this on - from the gcc path, it looks like gcc 4.9 on Redhat 7? Is that correct?

/Bruce

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

* Re: [dpdk-dev] DPDK 2.1.0 build error: inlining failed in call to always_inline
  2015-08-21 10:54 ` Bruce Richardson
@ 2015-08-21 15:13   ` Keith E. Fleming
  0 siblings, 0 replies; 3+ messages in thread
From: Keith E. Fleming @ 2015-08-21 15:13 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

Hi Bruce,
It is Fedora 21
[root@neutron dpdk-2.1.0]# cat /proc/cpuinfo | more
processor    : 0
vendor_id    : AuthenticAMD
cpu family    : 16
model        : 10
model name    : AMD Phenom(tm) II X6 1055T Processor
stepping    : 0
microcode    : 0x10000dc
cpu MHz        : 800.000
cache size    : 512 KB
physical id    : 0
siblings    : 6
core id        : 0
cpu cores    : 6
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 6
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxe
xt fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor cx16 popcnt lah
f_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt cpb hw_pstate npt lbrv svm_lock nrip_sa
ve pausefilter vmmcall
[root@neutron dpdk-2.1.0]# uname -a
Linux neutron 4.1.5-100.fc21.x86_64 #1 SMP Tue Aug 11 00:24:23 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

 [root@neutron dpdk-2.1.0]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC) 

Let me know if there's anything else you need. Thanks!


     On Friday, August 21, 2015 6:54 AM, Bruce Richardson <bruce.richardson@intel.com> wrote:
   

 On Thu, Aug 20, 2015 at 05:35:10PM +0000, Keith E. Fleming wrote:
> make config T=x86_64-native-linuxapp-gccsed -ri 's,(PMD_PCAP=).*,\1y,' build/.configmake
> [root@neutron dpdk-2.1.0]# make 2>&1 | more
> == Build lib
> == Build lib/librte_compat
> == Build lib/librte_eal
> == Build lib/librte_eal/common
> == Build lib/librte_eal/linuxapp
> == Build lib/librte_eal/linuxapp/igb_uio
> (cat /dev/null;   echo kernel//root/dpdk-2.1.0/build/build/lib/librte_eal/linuxapp/igb_uio/igb_uio.ko;) > /root/dpdk-2.1.0/build/build
> /lib/librte_eal/linuxapp/igb_uio/modules.order
>   Building modules, stage 2.
>   MODPOST 1 modules
> == Build lib/librte_eal/linuxapp/eal
>   CC eal_common_options.o
> In file included from /usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/x86intrin.h:37:0,
>                  from /root/dpdk-2.1.0/build/include/rte_vect.h:67,
>                  from /root/dpdk-2.1.0/build/include/rte_memcpy.h:46,
>                  from /root/dpdk-2.1.0/lib/librte_eal/common/eal_common_options.c:48:
> /root/dpdk-2.1.0/build/include/rte_memcpy.h: In function ‘rte_memcpy’:
> /usr/lib/gcc/x86_64-redhat-linux/4.9.2/include/tmmintrin.h:185:1: error: inlining failed in call to always_inline ‘_mm_alignr_epi8’: t
> arget specific option mismatch
>  _mm_alignr_epi8(__m128i __X, __m128i __Y, const int __N)
>  ^
> In file included from /root/dpdk-2.1.0/lib/librte_eal/common/eal_common_options.c:48:0:
> /root/dpdk-2.1.0/build/include/rte_memcpy.h:425:9: error: called from here
> 
> I can't even guess at what the problem is here. It's a total trainwreck. I assume this has compiled successfully for someone somewhere? Thanks

What OS platform is this on - from the gcc path, it looks like gcc 4.9 on Redhat 7? Is that correct?

/Bruce



From zoltan.kiss@linaro.org  Fri Aug 21 20:05:08 2015
Return-Path: <zoltan.kiss@linaro.org>
Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com
 [209.85.212.174]) by dpdk.org (Postfix) with ESMTP id E48C65A6F
 for <dev@dpdk.org>; Fri, 21 Aug 2015 20:05:08 +0200 (CEST)
Received: by wicne3 with SMTP id ne3so21987139wic.0
 for <dev@dpdk.org>; Fri, 21 Aug 2015 11:05:08 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d\x1e100.net; s 130820;
 h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to
 :cc:subject:content-type:content-transfer-encoding;
 bh=rqYwk902DLsXf0R3RUwusQ7DPdPQ4midnM9D77V9L9U=;
 b=bGVw6A0RFUXBF8MqiE6Orwkt4JMMoe8GNPfuHY2iJ8dAYhZi0pRttqLe3+BuUGu2uy
 VMeeYSpxbEJh0jEGkcd4EX0jhhjcKLzM7wQ8YqwwRPMl7nSvrKjb55lQSBCJvb/r9VqN
 IA3myVwJg/SEr3m2LyMGbpW3zW8skO8G5a6dFxO4Ktp+pbV7YFuvQEzqJMF6cZso+vm1
 jZX8ip5XBv4dwepJSHj4mUua+vIn53KbpQkl3kRAi3EzGENlCGUHFGfr2nRNeQ9KJO+Z
 AECoCnb5wdyFHObu4uzQzLau2V1rwChWxTbHB/DiN2Dz9Bavm+Y+FpK7FF7aencEjrYN
 NIzA=X-Gm-Message-State: ALoCoQll17WSGi8GU0MFhBRvGJb55DJIHydAlLHJwaZIbbA3mkwhBHMNCFhA7o270clF4mxBX8rx
X-Received: by 10.194.93.198 with SMTP id cw6mr18043662wjb.113.1440180308659;
 Fri, 21 Aug 2015 11:05:08 -0700 (PDT)
Received: from [192.168.0.101] ([90.152.119.35])
 by smtp.googlemail.com with ESMTPSA id i6sm10950493wje.33.2015.08.21.11.05.07
 (version=TLSv1/SSLv3 cipher=OTHER);
 Fri, 21 Aug 2015 11:05:07 -0700 (PDT)
Message-ID: <55D76854.5010306@linaro.org>
Date: Fri, 21 Aug 2015 19:05:08 +0100
From: Zoltan Kiss <zoltan.kiss@linaro.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.8.0
MIME-Version: 1.0
To: "dev@dpdk.org" <dev@dpdk.org>, dev@openvswitch.org
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Subject: [dpdk-dev] OVS-DPDK performance problem on ixgbe vector PMD
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>
X-List-Received-Date: Fri, 21 Aug 2015 18:05:09 -0000

Hi,

I've set up a simple packet forwarding perf test on a dual-port 10G
82599ES: one port receives 64 byte UDP packets, the other sends it out,
one core used. I've used latest OVS with DPDK 2.1, and the first result
was only 13.2 Mpps, which was a bit far from the 13.9 I've seen last
year with the same test. The first thing I've changed was to revert back
to the old behaviour about this issue:

http://permalink.gmane.org/gmane.comp.networking.dpdk.devel/22731

So instead of the new default I've passed 2048 + RTE_PKTMBUF_HEADROOM.
That increased the performance to 13.5, but to figure out what's wrong
started to play with the receive functions. First I've disabled vector
PMD, but ixgbe_recv_pkts_bulk_alloc() was even worse, only 12.5 Mpps. So
then I've enabled scattered RX, and with
ixgbe_recv_pkts_lro_bulk_alloc() I could manage to get 13.98 Mpps, which
is I guess as close as possible to the 14.2 line rate (on my HW at
least, with one core)
Does anyone has a good explanation about why the vector PMD performs so
significantly worse? I would expect that on a 3.2 GHz i5-4570 one core
should be able to reach ~14 Mpps, SG and vector PMD shouldn't make a
difference.
I've tried to look into it with oprofile, but the results were quite
strange: 35% of the samples were from miniflow_extract, the part where
parse_vlan calls data_pull to jump after the MAC addresses. The oprofile
snippet (1M samples):

   511454 19        0.0037  flow.c:511
   511458 149       0.0292  dp-packet.h:266
   51145f 4264      0.8357  dp-packet.h:267
   511466 18        0.0035  dp-packet.h:268
   51146d 43        0.0084  dp-packet.h:269
   511474 172       0.0337  flow.c:511
   51147a 4320      0.8467  string3.h:51
   51147e 358763   70.3176  flow.c:99
   511482 2        3.9e-04  string3.h:51
   511485 3060      0.5998  string3.h:51
   511488 1693      0.3318  string3.h:51
   51148c 2933      0.5749  flow.c:326
   511491 47        0.0092  flow.c:326

And the corresponding disassembled code:

   511454:       49 83 f9 0d             cmp    r9,0xd
   511458:       c6 83 81 00 00 00 00    mov    BYTE PTR [rbx+0x81],0x0
   51145f:       66 89 83 82 00 00 00    mov    WORD PTR [rbx+0x82],ax
   511466:       66 89 93 84 00 00 00    mov    WORD PTR [rbx+0x84],dx
   51146d:       66 89 8b 86 00 00 00    mov    WORD PTR [rbx+0x86],cx
   511474:       0f 86 af 01 00 00       jbe    511629
<miniflow_extract+0x279>
   51147a:       48 8b 45 00             mov    rax,QWORD PTR [rbp+0x0]
   51147e:       4c 8d 5d 0c             lea    r11,[rbp+0xc]
   511482:       49 89 00                mov    QWORD PTR [r8],rax
   511485:       8b 45 08                mov    eax,DWORD PTR [rbp+0x8]
   511488:       41 89 40 08             mov    DWORD PTR [r8+0x8],eax
   51148c:       44 0f b7 55 0c          movzx  r10d,WORD PTR [rbp+0xc]
   511491:       66 41 81 fa 81 00       cmp    r10w,0x81

My only explanation to this so far is that I misunderstand something
about the oprofile results.

Regards,

Zoltan

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

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

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-20 17:35 [dpdk-dev] DPDK 2.1.0 build error: inlining failed in call to always_inline Keith E. Fleming
2015-08-21 10:54 ` Bruce Richardson
2015-08-21 15:13   ` Keith E. Fleming

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