[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