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

Reply via email to