[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