[ovs-dev] [v2 v2 4/6] dpif-netdev: add avx512 miniflow extract for traffic ip/udp

Van Haaren, Harry harry.van.haaren at intel.com
Thu May 13 10:01:46 UTC 2021


> -----Original Message-----
> From: dev <ovs-dev-bounces at openvswitch.org> On Behalf Of Timothy Redaelli
> Sent: Thursday, April 29, 2021 2:52 PM
> To: Amber, Kumar <kumar.amber at intel.com>
> Cc: dev at openvswitch.org; i.maximets at ovn.org
> Subject: Re: [ovs-dev] [v2 v2 4/6] dpif-netdev: add avx512 miniflow extract for
> traffic ip/udp
> 
> On Wed, 28 Apr 2021 14:49:29 +0530
> Kumar Amber <kumar.amber at intel.com> wrote:
> 
> > This patch introduces avx512 optimized function
> > pointer for IP/UDP traffic type and supporting
> > functions in dpif-netdev-extract-avx512.
> >
> > Signed-off-by: Harry van Haaren <harry.van.haaren at intel.com>
> > Co-authored-by: Kumar Amber <kumar.amber at intel.com>
> > Signed-off-by: Kumar Amber <kumar.amber at intel.com>
> > ---
> >  lib/automake.mk                   |   1 +
> >  lib/dpdk.c                        |   1 +
> >  lib/dpif-netdev-extract-avx512.c  | 218 ++++++++++++++++++++++++++++++
> >  lib/dpif-netdev-private-extract.c |   5 +
> >  lib/dpif-netdev-private-extract.h |  11 ++
> >  5 files changed, 236 insertions(+)
> >  create mode 100644 lib/dpif-netdev-extract-avx512.c
> >
> 
> Hi,
> unlucky this patch breaks compilation on non-x86 arches:
> 
> libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I ../include -I ./include -I ../lib -I ./lib
> -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat -
> Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast -
> Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -
> Wmissing-field-initializers -fno-strict-aliasing -Wswitch-bool -Wlogical-not-
> parentheses -Wsizeof-array-argument -Wbool-compare -Wshift-negative-value -
> Wduplicated-cond -Wshadow -Wmultistatement-macros -Wcast-align=strict -O2 -g -
> pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-
> D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-
> switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -
> specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=z13 -mtune=z14 -
> fasynchronous-unwind-tables -fstack-clash-protection -c ../lib/dpif-netdev-extract-
> avx512.c  -fPIC -DPIC -o lib/.libs/dpif-netdev-extract-avx512.o
> ../lib/dpif-netdev-extract-avx512.c:18:10: fatal error: immintrin.h: No such file or
> directory
>  #include <immintrin.h>
>           ^~~~~~~~~~~~~
> compilation terminated.
> make[2]: *** [Makefile:4562: lib/dpif-netdev-extract-avx512.lo] Error 1
> make[2]: *** Waiting for unfinished jobs....
> 
> You should, probably, keep all the file content inside an #ifdef
> __x86_64__, and probably also inside an #if !defined(__CHECKER__), like
> dpif-netdev-lookup-avx512-gather.c and dpif-netdev-avx512.c.

Hi Timothy,

Apologies for response in delay - just saw your review on the patchwork:
https://patchwork.ozlabs.org/project/openvswitch/patch/20210428091931.2090062-5-kumar.amber@intel.com/

You're absolutely right that the code here wasn't portable to other Archs,
this was a known limitation of the v2, and is fixed in the V3 which we intend
to send to the mailing list in the next days.

Thanks for review & input, -Harry



More information about the dev mailing list