This patchset implements the changes as proposed during the OVS Conf '19, in the talk "Next steps for SW Datapath". Youtube link: https://youtu.be/x0bOpojnpmU
The talk raises 3 main requirements for CPU ISA Optimizations, each of which is addressed in some of the patches below. - Test & Validation (video @ 2:20) - Usabiliity & Debug (video @ 6:00) - Package & Deploy (video @ 8:45) Patch 1/5: The test and validation requirements proposed above are implemented, with the refactor of the subtable function pointer registration, and the autovalidator implementation is added. Patch 2/5: Adds the commands for usability & debug. Patch 3/5: Enable CPU ISA detection at runtime, providing information for future ISA optimized functions. v1 for CPU ISA: https://patchwork.ozlabs.org/series/160427/mbox/ Patch 4/5: Build system changes to enable the Package & Deploy requirements, allowing a single OVS binary to run on all CPUs, but also gain best performance from CPU specific ISA optimizations. Patch 5/5: Actual AVX-512 implementation for DPCLS subtable search. This is the actual SIMD vector code, which performs DPCLS miniflow iteration in parallel. @Reviewers: - Some more work is planned in streamlining the commands/usability. Feedback welcome of course :) Thanks for reading, any questions please let me know. Regards, -Harry Harry van Haaren (5): dpif: implement subtable lookup validation dpif-netdev: add subtable lookup set command dpcls: enable cpu feature detection lib/automake: split build multiple static library dpif-lookup: add avx512 gather implementation lib/automake.mk | 69 +++++-- lib/dpdk-stub.c | 13 ++ lib/dpdk.c | 27 +++ lib/dpdk.h | 2 + lib/dpif-netdev-lookup-autovalidator.c | 106 ++++++++++ lib/dpif-netdev-lookup-avx512-gather.c | 255 +++++++++++++++++++++++++ lib/dpif-netdev-lookup-generic.c | 7 +- lib/dpif-netdev-lookup.c | 87 +++++++++ lib/dpif-netdev-lookup.h | 82 ++++++++ lib/dpif-netdev-private.h | 15 -- lib/dpif-netdev.c | 74 ++++++- 11 files changed, 695 insertions(+), 42 deletions(-) create mode 100644 lib/dpif-netdev-lookup-autovalidator.c create mode 100644 lib/dpif-netdev-lookup-avx512-gather.c create mode 100644 lib/dpif-netdev-lookup.c create mode 100644 lib/dpif-netdev-lookup.h -- 2.17.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
