verify functionality and measure the performance parameters of DPDK eventdev
devices.
-Compiling the Application
--------------------------
-
-**Build the application**
-
-Execute the ``dpdk-setup.sh`` script to build the DPDK library together with the
-``dpdk-test-eventdev`` application.
-
-Initially, the user must select a DPDK target to choose the correct target type
-and compiler options to use when building the libraries.
-The user must have all libraries, modules, updates and compilers installed
-in the system prior to this,
-as described in the earlier chapters in this Getting Started Guide.
Running the Application
-----------------------
* ``--max_pkt_sz``
- Set max packet mbuf size. Can be used configure Rx/Tx scatter gather.
+ Set max packet mbuf size. Can be used to configure Rx/Tx scatter gather.
+ Only applicable for `pipeline_atq` and `pipeline_queue` tests.
+
+* ``--prod_enq_burst_sz``
+
+ Set producer enqueue burst size. Can be used to configure the number of
+ events the producer(s) will enqueue as a burst to the event device.
+ Only applicable for `perf_queue` test.
+
+* ``--nb_eth_queues``
+
+ Configure multiple Rx queues per each ethernet port.
+ Only applicable for `pipeline_atq` and `pipeline_queue` tests.
+
+* ``--enable_vector``
+
+ Enable event vector for Rx/Tx adapters.
+ Only applicable for `pipeline_atq` and `pipeline_queue` tests.
+
+* ``--vector_size``
+
+ Vector size to configure for the Rx adapter.
+ Only applicable for `pipeline_atq` and `pipeline_queue` tests.
+
+* ``--vector_tmo_ns``
+
+ Vector timeout nanoseconds to be configured for the Rx adapter.
Only applicable for `pipeline_atq` and `pipeline_queue` tests.
+* ``--per_port_pool``
+
+ Configure unique mempool per ethernet device, the size of each pool
+ is equal to `pool_sz`.
+ Only applicable for pipeline_atq` and `pipeline_queue` tests.
+
Eventdev Tests
--------------
.. code-block:: console
- sudo build/app/dpdk-test-eventdev --vdev=event_sw0 -- \
+ sudo <build_dir>/app/dpdk-test-eventdev --vdev=event_sw0 -- \
--test=order_queue --plcores 1 --wlcores 2,3
.. code-block:: console
- sudo build/app/dpdk-test-eventdev --vdev=event_octeontx -- \
+ sudo <build_dir>/app/dpdk-test-eventdev --vdev=event_octeontx -- \
--test=order_atq --plcores 1 --wlcores 2,3
stages through the ``--wlcores``, ``--plcores`` and the ``--stlist`` application
command line arguments respectively.
-The producer(s) injects the events to eventdev based the first stage sched type
-list requested by the user through ``--stlist`` the command line argument.
+The producer(s) injects the events to eventdev based on the first stage sched type
+list requested by the user through ``--stlist`` command line argument. It can
+inject a burst of events using ``--prod_enq_burst_sz`` command line argument.
Based on the number of stages to process(selected through ``--stlist``),
The application forwards the event to next upstream queue and terminates when it
--prod_type_ethdev
--prod_type_timerdev_burst
--prod_type_timerdev
+ --prod_enq_burst_sz
--timer_tick_nsec
--max_tmo_nsec
--expiry_nsec
.. code-block:: console
- sudo build/app/dpdk-test-eventdev -c 0xf -s 0x1 --vdev=event_sw0 -- \
+ sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x1 --vdev=event_sw0 -- \
--test=perf_queue --plcores=2 --wlcore=3 --stlist=p --nb_pkts=0
+Example command to run perf queue test with producer enqueuing a burst of events:
+
+.. code-block:: console
+
+ sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x1 --vdev=event_sw0 -- \
+ --test=perf_queue --plcores=2 --wlcore=3 --stlist=p --nb_pkts=0 \
+ --prod_enq_burst_sz=32
+
Example command to run perf queue test with ethernet ports:
.. code-block:: console
.. code-block:: console
- sudo build/app/dpdk-test-eventdev --vdev="event_octeontx" -- \
+ sudo <build_dir>/app/dpdk-test-eventdev --vdev="event_octeontx" -- \
--wlcores 4 --plcores 12 --test perf_queue --stlist=a \
--prod_type_timerdev --fwd_latency
.. code-block:: console
- sudo build/app/dpdk-test-eventdev --vdev=event_octeontx -- \
+ sudo <build_dir>/app/dpdk-test-eventdev --vdev=event_octeontx -- \
--test=perf_atq --plcores=2 --wlcore=3 --stlist=p --nb_pkts=0
Example command to run perf ``all types queue`` test with event timer adapter:
.. code-block:: console
- sudo build/app/dpdk-test-eventdev --vdev="event_octeontx" -- \
+ sudo <build_dir>/app/dpdk-test-eventdev --vdev="event_octeontx" -- \
--wlcores 4 --plcores 12 --test perf_atq --verbose 20 \
--stlist=a --prod_type_timerdev --fwd_latency
--worker_deq_depth
--prod_type_ethdev
--deq_tmo_nsec
+ --nb_eth_queues
+ --enable_vector
+ --vector_size
+ --vector_tmo_ns
+ --per_port_pool
.. Note::
.. code-block:: console
- sudo build/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \
+ sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \
--test=pipeline_queue --wlcore=1 --prod_type_ethdev --stlist=a
+Example command to run pipeline atq test with vector events:
+
+.. code-block:: console
+
+ sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \
+ --test=pipeline_queue --wlcore=1 --prod_type_ethdev --stlist=a \
+ --enable_vector --vector_size 512
PIPELINE_ATQ Test
~~~~~~~~~~~~~~~~~~~
--worker_deq_depth
--prod_type_ethdev
--deq_tmo_nsec
+ --nb_eth_queues
+ --enable_vector
+ --vector_size
+ --vector_tmo_ns
+ --per_port_pool
.. Note::
Example
^^^^^^^
-Example command to run pipeline queue test:
+Example command to run pipeline atq test:
.. code-block:: console
- sudo build/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \
+ sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \
--test=pipeline_atq --wlcore=1 --prod_type_ethdev --stlist=a
+
+Example command to run pipeline atq test with vector events:
+
+.. code-block:: console
+
+ sudo <build_dir>/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \
+ --test=pipeline_atq --wlcore=1 --prod_type_ethdev --stlist=a \
+ --enable_vector --vector_size 512