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 some relative performance benefits for 
these actions.
+-----------------------------------------------+-------------------+-----------------+
| Actions                                       | Scalar with series| AVX with 
series |
+-----------------------------------------------+-------------------+-----------------+
| mod_dl_dst                                    | 1.01x             | 1.13x     
      |
+-----------------------------------------------+-------------------+-----------------+
| push_vlan                                     | 1.01x             | 1.10x     
      |
+-----------------------------------------------+-------------------+-----------------+
| strip_vlan                                    | 1.01x             | 1.11x     
      |
+-----------------------------------------------+-------------------+-----------------+
| mod_ipv4 1 x field                            | 1.01x             | 1.02x     
      |
+-----------------------------------------------+-------------------+-----------------+
| mod_ipv4 4 x fields                           | 1.01x             | 1.21x     
      |
+-----------------------------------------------+-------------------+-----------------+
| strip_vlan + mod_dl_dst + mod_ipv4 4 x fields | 1.01x             | 1.36x     
      |
+-----------------------------------------------+-------------------+-----------------+

---
v8:
- First patch changing unit tests has been removed from series.
- AVX checksum implementation has been reworked.
- Dependency on userspace datapath has been resolved. 
---
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 (9):
  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                                |   7 +
 acinclude.m4                        |  21 ++
 configure.ac                        |   1 +
 lib/automake.mk                     |   9 +-
 lib/cpu.c                           |   1 +
 lib/cpu.h                           |   1 +
 lib/dp-packet.c                     |  24 ++
 lib/dp-packet.h                     |   4 +
 lib/dpif-netdev.c                   |   5 +
 lib/odp-execute-avx512.c            | 536 ++++++++++++++++++++++++++++
 lib/odp-execute-private.c           | 274 ++++++++++++++
 lib/odp-execute-private.h           | 100 ++++++
 lib/odp-execute-unixctl.man         |  10 +
 lib/odp-execute.c                   | 202 +++++++++--
 lib/odp-execute.h                   |  10 +
 tests/pmd.at                        |  39 ++
 vswitchd/ovs-vswitchd.8.in          |   1 +
 19 files changed, 1248 insertions(+), 47 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
 create mode 100644 lib/odp-execute-unixctl.man

-- 
2.32.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to