1 .. SPDX-License-Identifier: BSD-3-Clause
2 Copyright(c) 2018 Ericsson AB
4 Distributed Software Eventdev Poll Mode Driver
5 ==============================================
7 The distributed software event device is an eventdev driver which
8 distributes the task of scheduling events among all the eventdev ports
9 and the lcore threads using them.
20 * Load balanced (for Atomic, Ordered, Parallel queues)
21 * Single Link (for single-link queues)
23 Configuration and Options
24 -------------------------
26 The distributed software eventdev is a vdev device, and as such can be
27 created from the application code, or from the EAL command line:
29 * Call ``rte_vdev_init("event_dsw0")`` from the application
31 * Use ``--vdev="event_dsw0"`` in the EAL options, which will call
32 rte_vdev_init() internally
36 .. code-block:: console
38 ./your_eventdev_application --vdev="event_dsw0"
46 The distributed software eventdev uses an internal signaling schema
47 between the ports to achieve load balancing. In order for this to
48 work, the application must perform enqueue and/or dequeue operations
51 Producer-only ports which currently have no events to enqueue should
52 periodically call rte_event_enqueue_burst() with a zero-sized burst.
54 Ports left unattended for longer periods of time will prevent load
55 balancing, and also cause traffic interruptions on the flows which
56 are in the process of being migrated.
61 For efficiency reasons, the distributed software eventdev might not
62 send enqueued events immediately to the destination port, but instead
63 store them in an internal buffer in the source port.
65 In case no more events are enqueued on a port with buffered events,
66 these events will be sent after the application has performed a number
67 of enqueue and/or dequeue operations.
69 For explicit flushing, an application may call
70 rte_event_enqueue_burst() with a zero-sized burst.
76 The distributed software eventdev does not support event priorities.
81 The distributed software eventdev does not support the ordered queue type.
87 The distributed software eventdev does not support queues of type
88 RTE_EVENT_QUEUE_CFG_ALL_TYPES, which allow both atomic, ordered, and
89 parallel events on the same queue.
94 The distributed software eventdev does not support calls to
95 rte_event_port_link() or rte_event_port_unlink() after
96 rte_event_dev_start() has been called.