X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fguides%2Fnics%2Fenic.rst;h=bc38f51aa310e4874e4b21c2c59c53a6a30c1aab;hb=566b4d7a968fa454ff7deab7c43216712878af30;hp=86941fdb26c49c6f285376f8147a440b9a3030a5;hpb=86df6c4e2fce1e995faa7e30f445ecbcb6934ef4;p=dpdk.git diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst index 86941fdb26..bc38f51aa3 100644 --- a/doc/guides/nics/enic.rst +++ b/doc/guides/nics/enic.rst @@ -14,7 +14,7 @@ How to obtain ENIC PMD integrated DPDK -------------------------------------- ENIC PMD support is integrated into the DPDK suite. dpdk-.tar.gz -should be downloaded from http://dpdk.org +should be downloaded from http://core.dpdk.org/download/ Configuration information @@ -351,6 +351,41 @@ suitable for others. Such applications may change the mode by setting applications such as OVS-DPDK performance benchmarks that utilize only the default VLAN and want to see only untagged packets. + +Vectorized Rx Handler +--------------------- + +ENIC PMD includes a version of the receive handler that is vectorized using +AVX2 SIMD instructions. It is meant for bulk, throughput oriented workloads +where reducing cycles/packet in PMD is a priority. In order to use the +vectorized handler, take the following steps. + +- Use a recent version of gcc, icc, or clang and build 64-bit DPDK. If + the compiler is known to support AVX2, DPDK build system + automatically compiles the vectorized handler. Otherwise, the + handler is not available. + +- Set ``devargs`` parameter ``enable-avx2-rx=1`` to explicitly request that + PMD consider the vectorized handler when selecting the receive handler. + For example:: + + -w 12:00.0,enable-avx2-rx=1 + + As the current implementation is intended for field trials, by default, the + vectorized handler is not considered (``enable-avx2-rx=0``). + +- Run on a UCS M4 or later server with CPUs that support AVX2. + +PMD selects the vectorized handler when the handler is compiled into +the driver, the user requests its use via ``enable-avx2-rx=1``, CPU +supports AVX2, and scatter Rx is not used. To verify that the +vectorized handler is selected, enable debug logging +(``--log-level=pmd,debug``) and check the following message. + +.. code-block:: console + + enic_use_vector_rx_handler use the non-scatter avx2 Rx handler + .. _enic_limitations: Limitations