This patchset introduces actions infrastructure changes which allows the user to choose between different action implementations based on CPU ISA by using different commands. The infrastructure also provides a way to check the correctness of the ISA optimized action version against the scalar version.
This series also introduces optimized versions of the following actions: - push_vlan - pop_vlan - set_masked eth - set_masked ipv4 Below is a table indicating the relative performance benefits for these actions. +-----------------------------------------------+-------------------+-----------------+ | Actions | Salar with series |AVX with series | +-----------------------------------------------+-------------------+-----------------+ | mod_dl_dst | 1.04x |1.15x | +-----------------------------------------------+-------------------+-----------------+ | push_vlan | 1.10x |1.23x | +-----------------------------------------------+-------------------+-----------------+ | strip_vlan | 1.05x |1.14x | +-----------------------------------------------+-------------------+-----------------+ | mod_ipv4 1 x field | 1.04x |1.04x | +-----------------------------------------------+-------------------+-----------------+ | mod_ipv4 4 x fields | 1.04x |1.23x | +-----------------------------------------------+-------------------+-----------------+ | strip_vlan + mod_dl_dst + mod_ipv4 4 x fields | 1.06x |1.36x | +-----------------------------------------------+-------------------+-----------------+ --- v7: - Fix review comments from Eelco. --- v6: - Rebase to master - Add ISA implementation of set_masked eth and ipv4 actions - Fix incorrect checksums in input packets for ofproto-dpif unit tests --- v5: - Rebase to master - Minor change to variable names - Added Tags from Harry. --- v4: - Rebase to master - Add ISA implementation of push_vlan action --- v3: - Refactored to fix unit test failures - Removed some sign-off on commits --- v2: - Fix the CI build issues --- Emma Finn (10): ofproto-dpif: Fix incorrect checksums in input packets odp-execute: Add function pointers to odp-execute for different action implementations. odp-execute: Add function pointer for pop_vlan action. odp-execute: Add auto validation function for actions. odp-execute: Add command to switch action implementation. odp-execute: Add ISA implementation of actions. odp-execute: Add ISA implementation of pop_vlan action. odp-execute: Add ISA implementation of push_vlan action. odp-execute: Add ISA implementation of set_masked ETH odp-execute: Add ISA implementation of set_masked IPv4 action Kumar Amber (1): dpif-netdev: Add configure option to enable actions autovalidator at build time. Documentation/ref/ovs-actions.7.rst | 26 ++ Documentation/topics/testing.rst | 24 +- NEWS | 11 + acinclude.m4 | 21 ++ configure.ac | 1 + lib/automake.mk | 8 +- lib/cpu.c | 1 + lib/cpu.h | 1 + lib/dp-packet.c | 23 ++ lib/dp-packet.h | 4 + lib/dpif-netdev-unixctl.man | 8 + lib/dpif-netdev.c | 42 +++ lib/odp-execute-avx512.c | 463 ++++++++++++++++++++++++++++ lib/odp-execute-private.c | 266 ++++++++++++++++ lib/odp-execute-private.h | 99 ++++++ lib/odp-execute.c | 183 ++++++++--- lib/odp-execute.h | 14 + tests/ofproto-dpif.at | 10 +- tests/pmd.at | 30 ++ 19 files changed, 1183 insertions(+), 52 deletions(-) create mode 100644 lib/odp-execute-avx512.c create mode 100644 lib/odp-execute-private.c create mode 100644 lib/odp-execute-private.h -- 2.32.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev