[dpdk-dev] [PATCH v5 00/23] Add DLB2 PMD

McDaniel, Timothy timothy.mcdaniel at intel.com
Fri Oct 30 17:13:58 CET 2020



> -----Original Message-----
> From: Van Haaren, Harry <harry.van.haaren at intel.com>
> Sent: Friday, October 30, 2020 11:09 AM
> To: Jerin Jacob <jerinjacobk at gmail.com>; McDaniel, Timothy
> <timothy.mcdaniel at intel.com>
> Cc: dpdk-dev <dev at dpdk.org>; Carrillo, Erik G <erik.g.carrillo at intel.com>; Eads,
> Gage <gage.eads at intel.com>; Jerin Jacob <jerinj at marvell.com>; Thomas
> Monjalon <thomas at monjalon.net>
> Subject: RE: [dpdk-dev] [PATCH v5 00/23] Add DLB2 PMD
> 
> > -----Original Message-----
> > From: Jerin Jacob <jerinjacobk at gmail.com>
> > Sent: Friday, October 30, 2020 3:31 PM
> > To: McDaniel, Timothy <timothy.mcdaniel at intel.com>
> > Cc: dpdk-dev <dev at dpdk.org>; Carrillo, Erik G <erik.g.carrillo at intel.com>;
> Eads,
> > Gage <gage.eads at intel.com>; Van Haaren, Harry
> <harry.van.haaren at intel.com>;
> > Jerin Jacob <jerinj at marvell.com>; Thomas Monjalon
> <thomas at monjalon.net>
> > Subject: Re: [dpdk-dev] [PATCH v5 00/23] Add DLB2 PMD
> >
> > + @Richardson, Bruce  @Ananyev, Konstantin
> >
> > On Fri, Oct 30, 2020 at 8:55 PM McDaniel, Timothy
> > <timothy.mcdaniel at intel.com> wrote:
> > >
> 
> <snip backlog and compiler error output>
> 
> > > > -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native
> > > > -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -MD -MQ
> > > > drivers/libtmp_rte_event_dlb2.a.p/event_dlb2_pf_dlb2_pf.c.o -MF
> > > > drivers/lib
> > > > tmp_rte_event_dlb2.a.p/event_dlb2_pf_dlb2_pf.c.o.d -o
> > > > drivers/libtmp_rte_event_dlb2.a.p/event_dlb2_pf_dlb2_pf.c.o -c
> > > > ../drivers/event/dlb2/pf/dlb2_pf.c
> > > > In file included from ../drivers/event/dlb2/pf/dlb2_pf.c:35:
> > > > ../drivers/event/dlb2/pf/../dlb2_inline_fns.h:41:2: error: use of
> > > > unknown builtin '__builtin_ia32_movntdq'
> > > > [-Wimplicit-function-declaration]
> > > >         __builtin_ia32_movntdq((__v2di *)pp_addr, (__v2di)src_data0);
> > >
> > > Not sure why this builds for me, but I do not see this error.
> >
> > May be you can try with
> > [for-main][dpdk-next-eventdev] $ clang -v
> > clang version 10.0.1
> > Target: x86_64-pc-linux-gnu
> > Thread model: posix
> > InstalledDir: /usr/bin
> >
> >
> > > According to information online, '__builtin_ia32_movntdq' should be
> available if -
> > msse2 is set.
> > > According to the following snippet from config/x86/meson.build, it looks like
> > msse4 is defined.
> > > <snippet>
> > > # we require SSE4.2 for DPDK
> > > if cc.get_define('__SSE4_2__', args: machine_args) == ''
> > >         message('SSE 4.2 not enabled by default, explicitly enabling')
> > >         machine_args += '-msse4'
> > > endif
> > > <end snippet>
> > >
> > > I realize this is from clang, not gcc, but why are they out of sync?
> > > such that __builtin_ia32_movntdq is not available in clang, but is available in
> gcc.
> > >
> > > Should I convert to _mm_stream_si128 (__m128i *__A, __m128i __B) ?
> > >
> > > Any guidance on how to get past this would be greatly appreciated.
> 
> Confirm that __builtin_ia32_* works on GCC and not on Clang, reproducing
> error above.
> Using the intrinsic _mm_stream or _mm_store versions work with both Clang
> and GCC, and will fix this issue.

Thanks Harry.
I will convert to _mm_stream_si128.


More information about the dev mailing list