[ovs-dev] [PATCH v2 0/5] DPCLS Subtable ISA Optimization

Harry van Haaren harry.van.haaren at intel.com
Wed May 6 13:06:04 UTC 2020


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/5:
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/5:
Adds the commands for usability & debug.

Patch 3/5:
Enable CPU ISA detection at runtime, providing information for future
ISA optimized functions. v1 for CPU ISA:
https://patchwork.ozlabs.org/series/160427/mbox/

Patch 4/5:
Build system changes to enable the Package & Deploy requirements,
allowing a single OVS binary to run on all CPUs, but also gain best
performance from CPU specific ISA optimizations.

Patch 5/5:
Actual AVX-512 implementation for DPCLS subtable search. This is the
actual SIMD vector code, which performs DPCLS miniflow iteration in
parallel.


@Reviewers:
- Some more work is planned in streamlining the commands/usability.
  Feedback welcome of course :)


Thanks for reading, any questions please let me know.
Regards, -Harry


Harry van Haaren (5):
  dpif: implement subtable lookup validation
  dpif-netdev: add subtable lookup set command
  dpcls: enable cpu feature detection
  lib/automake: split build multiple static library
  dpif-lookup: add avx512 gather implementation

 lib/automake.mk                        |  69 +++++--
 lib/dpdk-stub.c                        |  13 ++
 lib/dpdk.c                             |  27 +++
 lib/dpdk.h                             |   2 +
 lib/dpif-netdev-lookup-autovalidator.c | 106 ++++++++++
 lib/dpif-netdev-lookup-avx512-gather.c | 255 +++++++++++++++++++++++++
 lib/dpif-netdev-lookup-generic.c       |   7 +-
 lib/dpif-netdev-lookup.c               |  87 +++++++++
 lib/dpif-netdev-lookup.h               |  82 ++++++++
 lib/dpif-netdev-private.h              |  15 --
 lib/dpif-netdev.c                      |  74 ++++++-
 11 files changed, 695 insertions(+), 42 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

-- 
2.17.1



More information about the dev mailing list