Message ID | 20180830142719.28569-11-mattias.ronnblom@ericsson.com (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Jerin Jacob |
Headers | show |
Series | Add the Distributed Software Event Device | expand |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
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 > >
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
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