[dpdk-dev] [PATCH v2] net/ixgbe: enable PTYPE offload for x86 vector PMD

Olivier Matz olivier.matz at 6wind.com
Tue Jun 6 17:45:26 CEST 2017


Hi Qi,

On Wed, 31 May 2017 19:30:26 -0400, Qi Zhang <qi.z.zhang at intel.com> wrote:
> Hardware PTYPE in Rx desc will be parsed to fill
> mbuf's packet_type.
> 
> Signed-off-by: Ray Kinsella <ray.kinsella at intel.com>
> Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
> ---
> 
> v2:
> - replace large macro that parse packet type with inline function
> - fix couple check patch issues.
> 
>  drivers/net/ixgbe/ixgbe_ethdev.c       |   8 +
>  drivers/net/ixgbe/ixgbe_rxtx.c         | 623 ++++++++++++++-------------------
>  drivers/net/ixgbe/ixgbe_rxtx.h         |  92 +++++
>  drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c |  65 ++++
>  4 files changed, 434 insertions(+), 354 deletions(-)
> 

I tried to compile your patch with RTE_MACHINE=default, and I
have the following compilation error:

gcc -Wp,-MD,./.ixgbe_rxtx_vec_sse.o.d.tmp  -m64 -pthread  -march=core2 -DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3 -DRTE_MACHINE_CPUFLAG_SSSE3  -I/home/user/dpdk.org/build/include -include /home/user/dpdk.org/build/include/rte_config.h -O3 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wold-style-definition -Wpointer-arith -Wcast-align -Wnested-externs -Wcast-qual -Wformat-nonliteral -Wformat-security -Wundef -Wwrite-strings -Werror -Wno-deprecated    -o ixgbe_rxtx_vec_sse.o -c /home/user/dpdk.org/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c 
In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/x86intrin.h:43:0,
                 from /home/user/dpdk.org/build/include/rte_vect.h:70,
                 from /home/user/dpdk.org/build/include/rte_memcpy.h:46,
                 from /home/user/dpdk.org/build/include/rte_ether.h:50,
                 from /home/user/dpdk.org/build/include/rte_ethdev.h:185,
                 from /home/user/dpdk.org/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c:35:
/home/user/dpdk.org/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c: In function ‘desc_to_ptype_v’:
/usr/lib/gcc/x86_64-linux-gnu/6/include/smmintrin.h:447:1: error: inlining failed in call to always_inline ‘_mm_extract_epi32’: target specific option mismatch
 _mm_extract_epi32 (__m128i __X, const int __N)
 ^~~~~~~~~~~~~~~~~
/home/user/dpdk.org/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c:300:13: note: called from here
  pkt_info = _mm_extract_epi32(ptype0, 3);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/x86intrin.h:43:0,
                 from /home/user/dpdk.org/build/include/rte_vect.h:70,
                 from /home/user/dpdk.org/build/include/rte_memcpy.h:46,
                 from /home/user/dpdk.org/build/include/rte_ether.h:50,
                 from /home/user/dpdk.org/build/include/rte_ethdev.h:185,
                 from /home/user/dpdk.org/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c:35:
[...]


To reproduce:
 make config T=x86_64-native-linuxapp-gcc
 sed -i 's,CONFIG_RTE_MACHINE="native",CONFIG_RTE_MACHINE="default",' build/.config
 make

Do we still want to support the core2 target?


Thanks,
Olivier




More information about the dev mailing list