v2 updates:
- Includes DPIF command switching at runtime
- Includes AVX512 DPIF implementation
- Includes some partially related changes (can be split out of set?)
--- netdev output action optimization
--- avx512 dpcls 16-block support optimization

Hi OVS Community,

This patchset is a v2 for making the DPIF component of
the userspace datapath more flexible. The same approach as has
been previously used for DPCLS is used here, where a function
pointer allows selection of an implementation at runtime.

The flexibility from the above changes enables ISA optimized
implementations of the DPIF component of the datapath. As these
ISA optimized implementations also require access to EMC/SMC/HWOL
features, these have been split out to seperate header files.

The file splitting also improves maintainability, as dpif_netdev.c
has ~9000 LOC, and very hard to modify due to many structs defined
locally in the .c file, ruling out re-usability in other .c files.

Questions welcomed! Regards, -Harry


Harry van Haaren (11):
  dpif-netdev: optimize dp output action
  dpdk: cache result of CPU ISA checks
  dpif-netdev: move pmd_try_optimize function in file
  dpif-netdev: move netdev flow struct to header
  dpif-netdev: refactor to multiple header files
  dpif-netdev: split hwol out to own header file
  dpif-netdev: add function pointer for netdev input
  dpif-avx512: add ISA implementation of dpif
  dpif-netdev: add command to switch dpif implementation
  dpif-netdev/dpcls: refactor function names to dpcls
  dpif-netdev/dpcls-avx512: enable 16 miniflow block processing

 acinclude.m4                           |  16 +
 configure.ac                           |   1 +
 lib/automake.mk                        |  11 +-
 lib/dpdk.c                             |  24 +-
 lib/dpif-netdev-avx512.c               | 199 ++++++
 lib/dpif-netdev-lookup-autovalidator.c |   1 -
 lib/dpif-netdev-lookup-avx512-gather.c | 225 +++++--
 lib/dpif-netdev-lookup-generic.c       |   1 -
 lib/dpif-netdev-lookup.h               |   2 +-
 lib/dpif-netdev-private-dfc.h          | 244 +++++++
 lib/dpif-netdev-private-dpcls.h        | 127 ++++
 lib/dpif-netdev-private-dpif.c         | 103 +++
 lib/dpif-netdev-private-dpif.h         |  61 ++
 lib/dpif-netdev-private-flow.h         | 154 +++++
 lib/dpif-netdev-private-hwol.h         |  63 ++
 lib/dpif-netdev-private-thread.h       | 214 ++++++
 lib/dpif-netdev-private.h              | 123 +---
 lib/dpif-netdev.c                      | 872 +++++++------------------
 18 files changed, 1643 insertions(+), 798 deletions(-)
 create mode 100644 lib/dpif-netdev-avx512.c
 create mode 100644 lib/dpif-netdev-private-dfc.h
 create mode 100644 lib/dpif-netdev-private-dpcls.h
 create mode 100644 lib/dpif-netdev-private-dpif.c
 create mode 100644 lib/dpif-netdev-private-dpif.h
 create mode 100644 lib/dpif-netdev-private-flow.h
 create mode 100644 lib/dpif-netdev-private-hwol.h
 create mode 100644 lib/dpif-netdev-private-thread.h

-- 
2.25.1

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to