summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorEmma Finn <emma.finn@intel.com>2022-07-15 10:16:19 +0000
committerIan Stokes <ian.stokes@intel.com>2022-07-15 11:40:20 +0100
commit529af67146a7695036a9fa8395616af4f28bbc7c (patch)
tree45fbd9a4e26546ae10f117edd843ee4d5acf2112 /Documentation
parentb52e0b396e59217ba7f291da5dd64f504683edaf (diff)
downloadopenvswitch-529af67146a7695036a9fa8395616af4f28bbc7c.tar.gz
odp-execute: Add ISA implementation of actions.
This commit adds the AVX512 implementation of the action functionality. Usage: $ ovs-appctl odp-execute/action-impl-set avx512 Signed-off-by: Emma Finn <emma.finn@intel.com> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com> Co-authored-by: Harry van Haaren <harry.van.haaren@intel.com> Acked-by: Sunil Pai G <sunil.pai.g@intel.com> Acked-by: Eelco Chaudron <echaudro@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/topics/dpdk/bridge.rst30
-rw-r--r--Documentation/topics/testing.rst24
2 files changed, 46 insertions, 8 deletions
diff --git a/Documentation/topics/dpdk/bridge.rst b/Documentation/topics/dpdk/bridge.rst
index 1f626c7c2..354f1ced1 100644
--- a/Documentation/topics/dpdk/bridge.rst
+++ b/Documentation/topics/dpdk/bridge.rst
@@ -321,3 +321,33 @@ following command::
``scalar`` can be selected on core ``3`` by the following command::
$ ovs-appctl dpif-netdev/miniflow-parser-set -pmd 3 scalar
+
+
+Actions Implementations (Experimental)
+--------------------------------------
+
+Actions describe what processing or modification should be performed on a
+packet when it matches a given flow. Similar to the datapath interface,
+DPCLS and MFEX (see above), the implementation of these actions can be
+accelerated using SIMD instructions, resulting in improved performance.
+
+OVS provides multiple implementations of the actions, however some
+implementations requiring a CPU capable of executing the required SIMD
+instructions.
+
+Available implementations can be listed with the following command::
+
+ $ ovs-appctl odp-execute/action-impl-show
+ Available Actions implementations:
+ scalar (available: Yes, active: Yes)
+ autovalidator (available: Yes, active: No)
+ avx512 (available: Yes, active: No)
+
+By default, ``scalar`` is used. Implementations can be selected by
+name::
+
+ $ ovs-appctl odp-execute/action-impl-set avx512
+ Action implementation set to avx512.
+
+ $ ovs-appctl odp-execute/action-impl-set scalar
+ Action implementation set to scalar.
diff --git a/Documentation/topics/testing.rst b/Documentation/topics/testing.rst
index c15d5b38f..a6c747b18 100644
--- a/Documentation/topics/testing.rst
+++ b/Documentation/topics/testing.rst
@@ -361,12 +361,12 @@ testsuite.
Userspace datapath: Testing and Validation of CPU-specific Optimizations
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-As multiple versions of the datapath classifier and packet parsing functions
-can co-exist, each with different CPU ISA optimizations, it is important to
-validate that they all give the exact same results. To easily test all the
-implementations, an ``autovalidator`` implementation of them exists. This
-implementation runs all other available implementations, and verifies that the
-results are identical.
+As multiple versions of the datapath classifier, packet parsing functions and
+actions can co-exist, each with different CPU ISA optimizations, it is
+important to validate that they all give the exact same results. To easily
+test all the implementations, an ``autovalidator`` implementation of them
+exists. This implementation runs all other available implementations, and
+verifies that the results are identical.
Running the OVS unit tests with the autovalidator enabled ensures all
implementations provide the same results. Note that the performance of the
@@ -382,18 +382,26 @@ To set the autovalidator for the packet parser, use this command::
$ ovs-appctl dpif-netdev/miniflow-parser-set autovalidator
+To set the autovalidator for actions, use this command::
+
+ $ ovs-appctl odp-execute/action-impl-set autovalidator
+
To run the OVS unit test suite with the autovalidator as the default
implementation, it is required to recompile OVS. During the recompilation,
the default priority of the `autovalidator` implementation is set to the
-maximum priority, ensuring every test will be run with every implementation::
+maximum priority, ensuring every test will be run with every implementation.
+Priority is only related to mfex autovalidator and not the actions
+autovalidator.::
- $ ./configure --enable-autovalidator --enable-mfex-default-autovalidator
+ $ ./configure --enable-autovalidator --enable-mfex-default-autovalidator \
+ --enable-actions-default-autovalidator
The following line should be seen in the configuration log when the above
options are used::
checking whether DPCLS Autovalidator is default implementation... yes
checking whether MFEX Autovalidator is default implementation... yes
+ checking whether actions Autovalidator is default implementation... yes
Compile OVS in debug mode to have `ovs_assert` statements error out if
there is a mis-match in the datapath classifier lookup or packet parser