diff options
Diffstat (limited to 'doc/guides/eventdevs')
-rw-r--r-- | doc/guides/eventdevs/dpaa.rst | 2 | ||||
-rw-r--r-- | doc/guides/eventdevs/dsw.rst | 96 | ||||
-rw-r--r-- | doc/guides/eventdevs/index.rst | 1 | ||||
-rw-r--r-- | doc/guides/eventdevs/octeontx.rst | 20 | ||||
-rw-r--r-- | doc/guides/eventdevs/opdl.rst | 2 |
5 files changed, 110 insertions, 11 deletions
diff --git a/doc/guides/eventdevs/dpaa.rst b/doc/guides/eventdevs/dpaa.rst index 73832957..2f356d3c 100644 --- a/doc/guides/eventdevs/dpaa.rst +++ b/doc/guides/eventdevs/dpaa.rst @@ -122,6 +122,8 @@ Example: ./your_eventdev_application --vdev="event_dpaa1" +* Use dev arg option ``disable_intr=1`` to disable the interrupt mode + Limitations ----------- diff --git a/doc/guides/eventdevs/dsw.rst b/doc/guides/eventdevs/dsw.rst new file mode 100644 index 00000000..6653f501 --- /dev/null +++ b/doc/guides/eventdevs/dsw.rst @@ -0,0 +1,96 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2018 Ericsson AB + +Distributed Software Eventdev Poll Mode Driver +============================================== + +The distributed software event device is an eventdev driver which +distributes the task of scheduling events among all the eventdev ports +and the lcore threads using them. + +Features +-------- + +Queues + * Atomic + * Parallel + * Single-Link + +Ports + * Load balanced (for Atomic, Ordered, Parallel queues) + * Single Link (for single-link queues) + +Configuration and Options +------------------------- + +The distributed software eventdev is a vdev device, and as such can be +created from the application code, or from the EAL command line: + +* Call ``rte_vdev_init("event_dsw0")`` from the application + +* Use ``--vdev="event_dsw0"`` in the EAL options, which will call + rte_vdev_init() internally + +Example: + +.. code-block:: console + + ./your_eventdev_application --vdev="event_dsw0" + +Limitations +----------- + +Unattended Ports +~~~~~~~~~~~~~~~~ + +The distributed software eventdev uses an internal signaling schema +between the ports to achieve load balancing. In order for this to +work, the application must perform enqueue and/or dequeue operations +on all ports. + +Producer-only ports which currently have no events to enqueue should +periodically call rte_event_enqueue_burst() with a zero-sized burst. + +Ports left unattended for longer periods of time will prevent load +balancing, and also cause traffic interruptions on the flows which +are in the process of being migrated. + +Output Buffering +~~~~~~~~~~~~~~~~ + +For efficiency reasons, the distributed software eventdev might not +send enqueued events immediately to the destination port, but instead +store them in an internal buffer in the source port. + +In case no more events are enqueued on a port with buffered events, +these events will be sent after the application has performed a number +of enqueue and/or dequeue operations. + +For explicit flushing, an application may call +rte_event_enqueue_burst() with a zero-sized burst. + + +Priorities +~~~~~~~~~~ + +The distributed software eventdev does not support event priorities. + +Ordered Queues +~~~~~~~~~~~~~~ + +The distributed software eventdev does not support the ordered queue type. + + +"All Types" Queues +~~~~~~~~~~~~~~~~~~ + +The distributed software eventdev does not support queues of type +RTE_EVENT_QUEUE_CFG_ALL_TYPES, which allow both atomic, ordered, and +parallel events on the same queue. + +Dynamic Link/Unlink +~~~~~~~~~~~~~~~~~~~ + +The distributed software eventdev does not support calls to +rte_event_port_link() or rte_event_port_unlink() after +rte_event_dev_start() has been called. diff --git a/doc/guides/eventdevs/index.rst b/doc/guides/eventdevs/index.rst index 18ec8e46..f7382dc8 100644 --- a/doc/guides/eventdevs/index.rst +++ b/doc/guides/eventdevs/index.rst @@ -13,6 +13,7 @@ application trough the eventdev API. dpaa dpaa2 + dsw sw octeontx opdl diff --git a/doc/guides/eventdevs/octeontx.rst b/doc/guides/eventdevs/octeontx.rst index 18cfc7a9..e276fd44 100644 --- a/doc/guides/eventdevs/octeontx.rst +++ b/doc/guides/eventdevs/octeontx.rst @@ -1,11 +1,11 @@ .. SPDX-License-Identifier: BSD-3-Clause Copyright(c) 2017 Cavium, Inc -OCTEONTX SSOVF Eventdev Driver -============================== +OCTEON TX SSOVF Eventdev Driver +=============================== -The OCTEONTX SSOVF PMD (**librte_pmd_octeontx_ssovf**) provides poll mode -eventdev driver support for the inbuilt event device found in the **Cavium OCTEONTX** +The OCTEON TX SSOVF PMD (**librte_pmd_octeontx_ssovf**) provides poll mode +eventdev driver support for the inbuilt event device found in the **Cavium OCTEON TX** SoC family as well as their virtual functions (VF) in SR-IOV context. More information can be found at `Cavium, Inc Official Website @@ -14,7 +14,7 @@ More information can be found at `Cavium, Inc Official Website Features -------- -Features of the OCTEONTX SSOVF PMD are: +Features of the OCTEON TX SSOVF PMD are: - 64 Event queues - 32 Event ports @@ -32,8 +32,8 @@ Features of the OCTEONTX SSOVF PMD are: time granularity of 1us. - Up to 64 event timer adapters. -Supported OCTEONTX SoCs ------------------------ +Supported OCTEON TX SoCs +------------------------ - CN83xx Prerequisites @@ -57,7 +57,7 @@ Please note that enabling debugging options may affect system performance. Driver Compilation ~~~~~~~~~~~~~~~~~~ -To compile the OCTEONTX SSOVF PMD for Linux arm64 gcc target, run the +To compile the OCTEON TX SSOVF PMD for Linux arm64 gcc target, run the following ``make`` command: .. code-block:: console @@ -69,7 +69,7 @@ following ``make`` command: Initialization -------------- -The octeontx eventdev is exposed as a vdev device which consists of a set +The OCTEON TX eventdev is exposed as a vdev device which consists of a set of SSO group and work-slot PCIe VF devices. On EAL initialization, SSO PCIe VF devices will be probed and then the vdev device can be created from the application code, or from the EAL command line based on @@ -90,7 +90,7 @@ Example: Selftest -------- -The functionality of octeontx eventdev can be verified using this option, +The functionality of OCTEON TX eventdev can be verified using this option, various unit and functional tests are run to verify the sanity. The tests are run once the vdev creation is successfully complete. diff --git a/doc/guides/eventdevs/opdl.rst b/doc/guides/eventdevs/opdl.rst index 21052232..0262a337 100644 --- a/doc/guides/eventdevs/opdl.rst +++ b/doc/guides/eventdevs/opdl.rst @@ -62,7 +62,7 @@ Queue Dependencies As stated the order in which packets travel through queues is static in nature. They go through the queues in the order the queues are setup at initialisation ``rte_event_queue_setup()``. For example if an application -sets up 3 queues, Q0, Q1, Q2 and has 3 assoicated ports P0, P1, P2 and +sets up 3 queues, Q0, Q1, Q2 and has 3 associated ports P0, P1, P2 and P3 then packets must be * Enqueued onto Q0 (typically through P0), then |