[10/10] eventdev: include DSW event device documentation
Checks
Commit Message
The DSW event device is documented in DPDK Programmer's Guide.
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
---
doc/guides/eventdevs/dsw.rst | 97 ++++++++++++++++++++++++++++++++++
doc/guides/eventdevs/index.rst | 1 +
2 files changed, 98 insertions(+)
create mode 100644 doc/guides/eventdevs/dsw.rst
Comments
Will DSW be included in 18.11?
/M
On 2018-08-30 16:27, Mattias Rönnblom wrote:
> The DSW event device is documented in DPDK Programmer's Guide.
>
> Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
> ---
> doc/guides/eventdevs/dsw.rst | 97 ++++++++++++++++++++++++++++++++++
> doc/guides/eventdevs/index.rst | 1 +
> 2 files changed, 98 insertions(+)
> create mode 100644 doc/guides/eventdevs/dsw.rst
>
> diff --git a/doc/guides/eventdevs/dsw.rst b/doc/guides/eventdevs/dsw.rst
> new file mode 100644
> index 000000000..de41ae9d3
> --- /dev/null
> +++ b/doc/guides/eventdevs/dsw.rst
> @@ -0,0 +1,97 @@
> +.. SPDX-License-Identifier: BSD-3-Clause
> + Copyright(c) 2017 Intel Corporation.
> + Copyright(c) 2018 Ericsson AB
> +
> +Distributed Software Eventdev Poll Mode Driver
> +==============================================
> +
> +The distributed software eventdev is a parallel implementation of the
> +eventdev API, 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 18ec8e462..984eea5f4 100644
> --- a/doc/guides/eventdevs/index.rst
> +++ b/doc/guides/eventdevs/index.rst
> @@ -14,5 +14,6 @@ application trough the eventdev API.
> dpaa
> dpaa2
> sw
> + dsw
> octeontx
> opdl
>
-----Original Message-----
> Date: Mon, 10 Sep 2018 14:59:51 +0200
> From: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
> To: jerin.jacob@caviumnetworks.com
> CC: bruce.richardson@intel.com, dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 10/10] eventdev: include DSW event device
> documentation
> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
> Thunderbird/52.9.1
>
>
> Will DSW be included in 18.11?
Yes.
I may have minor comments on individual patches. But overall the patches looks
good.
Please fix the following check-git-log.sh issues
[dpdk-next-eventdev] $ ./devtools/check-git-log.sh
Wrong headline prefix:
eventdev: add DSW device and queue configuration
eventdev: add DSW port configuration
eventdev: add support in DSW for linking/unlinking ports
eventdev: add DSW event scheduling and device start/stop
eventdev: add DSW port load measurements
eventdev: add load balancing to the DSW event device
eventdev: let DSW event device sort events on dequeue
eventdev: implement eventdev 'xstats' counters in DSW
>
> /M
>
> On 2018-08-30 16:27, Mattias Rönnblom wrote:
> > The DSW event device is documented in DPDK Programmer's Guide.
> >
> > Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
> > ---
> > doc/guides/eventdevs/dsw.rst | 97 ++++++++++++++++++++++++++++++++++
> > doc/guides/eventdevs/index.rst | 1 +
> > 2 files changed, 98 insertions(+)
> > create mode 100644 doc/guides/eventdevs/dsw.rst
> >
> > diff --git a/doc/guides/eventdevs/dsw.rst b/doc/guides/eventdevs/dsw.rst
> > new file mode 100644
> > index 000000000..de41ae9d3
> > --- /dev/null
> > +++ b/doc/guides/eventdevs/dsw.rst
> > @@ -0,0 +1,97 @@
> > +.. SPDX-License-Identifier: BSD-3-Clause
> > + Copyright(c) 2017 Intel Corporation.
> > + Copyright(c) 2018 Ericsson AB
> > +
> > +Distributed Software Eventdev Poll Mode Driver
> > +==============================================
> > +
> > +The distributed software eventdev is a parallel implementation of the
> > +eventdev API, 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 18ec8e462..984eea5f4 100644
> > --- a/doc/guides/eventdevs/index.rst
> > +++ b/doc/guides/eventdevs/index.rst
> > @@ -14,5 +14,6 @@ application trough the eventdev API.
> > dpaa
> > dpaa2
> > sw
> > + dsw
> > octeontx
> > opdl
> >
new file mode 100644
@@ -0,0 +1,97 @@
+.. SPDX-License-Identifier: BSD-3-Clause
+ Copyright(c) 2017 Intel Corporation.
+ Copyright(c) 2018 Ericsson AB
+
+Distributed Software Eventdev Poll Mode Driver
+==============================================
+
+The distributed software eventdev is a parallel implementation of the
+eventdev API, 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.
@@ -14,5 +14,6 @@ application trough the eventdev API.
dpaa
dpaa2
sw
+ dsw
octeontx
opdl