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
|
+-----------------------------------------------+-------------------+-----------------+
---
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 action
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/topics/dpdk/bridge.rst | 25 +
Documentation/topics/testing.rst | 20 +-
NEWS | 7 +
acinclude.m4 | 17 +
configure.ac | 1 +
.../linux/compat/include/linux/openvswitch.h | 2 +-
lib/automake.mk | 6 +-
lib/cpu.c | 1 +
lib/cpu.h | 1 +
lib/dp-packet.c | 23 +
lib/dp-packet.h | 4 +
lib/dpif-netdev-unixctl.man | 6 +
lib/dpif-netdev.c | 43 ++
lib/odp-execute-avx512.c | 436 ++++++++++++++++++
lib/odp-execute-private.c | 291 ++++++++++++
lib/odp-execute-private.h | 109 +++++
lib/odp-execute.c | 186 ++++++--
lib/odp-execute.h | 11 +
tests/ofproto-dpif.at | 10 +-
tests/pmd.at | 21 +
20 files changed, 1168 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.25.1
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev