[ovs-dev] [PATCH v3 6/7] dpif-lookup: add avx512 gather implementation

Van Haaren, Harry harry.van.haaren at intel.com
Wed Jun 17 17:03:24 UTC 2020


> -----Original Message-----
> From: William Tu <u9012063 at gmail.com>
> Sent: Tuesday, June 16, 2020 4:41 PM
> To: Van Haaren, Harry <harry.van.haaren at intel.com>
> Cc: ovs-dev <ovs-dev at openvswitch.org>; Stokes, Ian <ian.stokes at intel.com>;
> Ilya Maximets <i.maximets at ovn.org>; Federico Iezzi <fiezzi at redhat.com>
> Subject: Re: [PATCH v3 6/7] dpif-lookup: add avx512 gather implementation
> 
> On Wed, Jun 10, 2020 at 3:47 AM Harry van Haaren
> <harry.van.haaren at intel.com> wrote:
<snip body of commit msg>
> > v3:
> > - Improve function name for _any subtable lookup
> > - Use "" include not <> for immintrin.h
> > - Add checks for SSE42 instructions in core OVS for CRC32 based hashing
> >   If not available, disable AVX512 lookup implementation as it requires
> >   uses CRC32 for hashing, and the hashing algorithm must match core OVS.
> >   Issue a #warning when building x86_64 without SSE42 for core OVS.
> 
> Where did you add this warning?

Initially I did (and added it to commit message), but removed it later as it was
failing some builds (but never removed it from commit message!). Will remove
from commit message.

<snip code/commit details>
> > +# Build lookupavx512 library with extra CFLAGS enabled. This allows the
> > +# compiler to use the ISA features required for the ISA optimized code-paths.
> > +lib_libopenvswitchlookupavx512_la_CFLAGS = \
> > +       -mavx512f \
> > +       -mavx512bw \
> > +       -mavx512dq \
> > +       -mbmi2 \
> > +       $(AM_CFLAGS)
> > +lib_libopenvswitchlookupavx512_la_SOURCES = \
> > +       lib/dpif-netdev-lookup-avx512-gather.c
> > +
> the robot is showing error
> gcc: error: unrecognized command line option '-mavx512f'
> looks like the older version of gcc doesn't have the option.
> I don't know a better way to check gcc flags support, maybe add
> a check at acinclude.m4, the _OVS_CHECK_CC_OPTION?

Yes correct - older GCC versions (before 4.9) don't have a -mavx512f
or other AVX512 related flags. I've added a CHECK_CC_OPTION around
the AVX512 code in the v4, just as suggested. Unfortunately it results in
an #ifdef around some code, but this the best solution I think.

Thanks for review, -Harry

<snip>


More information about the dev mailing list