event/dsw: add documentation

The DSW event device is documented in DPDK Programmer's Guide.

The MAINTAINERS file and the 18.11 release notes are updated.

Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
This commit is contained in:
Mattias Rönnblom 2018-09-18 14:45:14 +02:00 committed by Jerin Jacob
parent f3c5899bb9
commit 46ea5781be
4 changed files with 106 additions and 0 deletions

View File

@ -924,6 +924,7 @@ F: doc/guides/sample_app_ug/eventdev_pipeline.rst
Distributed Software Eventdev PMD
M: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
F: drivers/event/dsw/
F: doc/guides/eventdevs/dsw.rst
Software OPDL Eventdev PMD
M: Liang Ma <liang.j.ma@intel.com>

View File

@ -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.

View File

@ -13,6 +13,7 @@ application trough the eventdev API.
dpaa
dpaa2
dsw
sw
octeontx
opdl

View File

@ -81,6 +81,14 @@ New Features
* Support for runtime Rx and Tx queues setup.
* Support multicast MAC address set.
* **Added Distributed Software Eventdev PMD.**
Added the new Distributed Software Event Device (DSW), which is a
pure-software eventdev driver distributing the work of scheduling
among all eventdev ports and the lcores using them. DSW, compared to
the SW eventdev PMD, sacrifices load balancing performance to
gain better event scheduling throughput and scalability.
* **Added ability to switch queue deferred start flag on testpmd app.**
Added a console command to testpmd app, giving ability to switch