On 7/13/2020 1:42 PM, Harry van Haaren wrote:
v7 work done:
- Fix typos and punctuation in comments (Ian, spellecheckers)
- Fix output to use spaces not tabs (Ilya)
- Renamed generated avx512 function names for consistency

Thanks William & Ian & Ilya for review & help on v6.
Patchset is now ready for merge, with all outstanding
comments resolved.


Thanks for all the work on this Harry.

All known issues flagged have been resolved, it's passing community tests also so I've pushed to master.

Thanks
Ian



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/6:
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/intro/install/dpdk.rst   |  30 +++
  Documentation/topics/dpdk/bridge.rst   |  77 ++++++++
  NEWS                                   |   3 +
  acinclude.m4                           |  16 ++
  configure.ac                           |   4 +
  lib/automake.mk                        |  24 +++
  lib/dpdk-stub.c                        |   9 +
  lib/dpdk.c                             |  30 +++
  lib/dpdk.h                             |   2 +
  lib/dpif-netdev-lookup-autovalidator.c | 110 +++++++++++
  lib/dpif-netdev-lookup-avx512-gather.c | 264 +++++++++++++++++++++++++
  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                      |  30 +++
  17 files changed, 963 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

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

Reply via email to