The software eventdev is an implementation of the eventdev API, that provides a
wide range of the eventdev features. The eventdev relies on a CPU core to
-perform event scheduling.
+perform event scheduling. This PMD can use the service core library to run the
+scheduling function, allowing an application to utilize the power of service
+cores to multiplex other work on the same core if required.
Features
The software eventdev is a vdev device, and as such can be created from the
application code, or from the EAL command line:
-* Call ``rte_eal_vdev_init("event_sw0")`` from the application
+* Call ``rte_vdev_init("event_sw0")`` from the application
* Use ``--vdev="event_sw0"`` in the EAL options, which will call
- rte_eal_vdev_init() internally
+ rte_vdev_init() internally
Example:
~~~~~~~~~~~~~~~~~
The scheduling quanta sets the number of events that the device attempts to
-schedule before returning to the application from the ``rte_event_schedule()``
-function. Note that is a *hint* only, and that fewer or more events may be
-scheduled in a given iteration.
+schedule in a single schedule call performed by the service core. Note that
+is a *hint* only, and that fewer or more events may be scheduled in a given
+iteration.
The scheduling quanta can be set using a string argument to the vdev
create call:
Distributed Scheduler
~~~~~~~~~~~~~~~~~~~~~
-The software eventdev is a centralized scheduler, requiring the
-``rte_event_schedule()`` function to be called by a CPU core to perform the
-required event distribution. This is not really a limitation but rather a
-design decision.
+The software eventdev is a centralized scheduler, requiring a service core to
+perform the required event distribution. This is not really a limitation but
+rather a design decision.
The ``RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED`` flag is not set in the
``event_dev_cap`` field of the ``rte_event_dev_info`` struct for the software