v5 work done: - Add NEWS section - Integrate v4 patches 5 and 6 into a single commit - Address v4 feedback (details in each patch) -- Fixed multiple travis build issues/warnings -- Improved APIs/code, refactored #ifdefs
@William Tu: Thanks for pushing v4 commits to travis for testing, and reporting back. There are 2 items that I could not reproduce, and could not reliably state they are real issues, or 2nd order issues. This v5 has addressed the actual errors from Travis output, there is a chance these issues are not resolved by the surrounding fixes: 1) RTE_CPUFLAG_AVX512F flag not defined in a DPDK=1 build? 2) Binutils check for as with --64 parameter is invalid on older as? Would you re-push this branch and we can verify? Thanks in advance! Hi All, 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/6: 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 & 3 / 6: Adds the commands for usability & debug. Now improved with a "get" and "set" command. Get returns current priorities and a list of each lookup implementation. Set provides feedback to the user as to the number of DPCLS ports/subtables that have new lookup functions due to the command that was executed. Patch 4/6: Enable CPU ISA detection at runtime, providing information for future ISA optimized functions. Patch 5/6: Actual AVX-512 implementation for DPCLS subtable search. This is the actual SIMD vector code, which performs DPCLS miniflow iteration in parallel. Patch 6/7: Add section in dpdk/bridges.rst on how to use the DPCLS commands, and what they can be used for. Testing and validation using autovalidator concept introduced, and command to set its priority is provided. The steps required to run the autovalidator as default lookup implementation are described. NEWS file is updated with things changed in userspace datapath. Thanks for reading, any questions please let me know. Regards, -Harry Harry van Haaren (6): dpif-netdev: implement subtable lookup validation. dpif-netdev: add subtable lookup prio set command. dpif-netdev: add subtable-lookup-prio-get command. dpdk: enable cpu feature detection. dpif-lookup: add avx512 gather implementation. docs/dpdk/bridge: add datapath performance section. Documentation/topics/dpdk/bridge.rst | 77 +++++++ NEWS | 3 + acinclude.m4 | 16 ++ configure.ac | 4 + lib/automake.mk | 20 ++ lib/dpdk-stub.c | 9 + lib/dpdk.c | 27 +++ lib/dpdk.h | 2 + lib/dpif-netdev-lookup-autovalidator.c | 110 ++++++++++ lib/dpif-netdev-lookup-avx512-gather.c | 265 +++++++++++++++++++++++++ lib/dpif-netdev-lookup-generic.c | 9 +- lib/dpif-netdev-lookup.c | 124 ++++++++++++ lib/dpif-netdev-lookup.h | 79 ++++++++ lib/dpif-netdev-private.h | 15 -- lib/dpif-netdev.c | 161 ++++++++++++++- m4/openvswitch.m4 | 25 +++ 16 files changed, 922 insertions(+), 24 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
