2018-01-08 05:25:18 +00:00
|
|
|
.. SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
Copyright(c) 2017 Cavium, Inc
|
2017-03-03 17:28:21 +00:00
|
|
|
|
2018-10-10 02:50:56 +00:00
|
|
|
OCTEON TX SSOVF Eventdev Driver
|
|
|
|
===============================
|
2017-03-03 17:28:21 +00:00
|
|
|
|
2020-11-03 12:36:02 +00:00
|
|
|
The OCTEON TX SSOVF PMD (**librte_event_octeontx**) provides poll mode
|
2018-10-10 02:50:56 +00:00
|
|
|
eventdev driver support for the inbuilt event device found in the **Cavium OCTEON TX**
|
2017-03-03 17:28:21 +00:00
|
|
|
SoC family as well as their virtual functions (VF) in SR-IOV context.
|
|
|
|
|
2017-07-08 13:57:53 +00:00
|
|
|
More information can be found at `Cavium, Inc Official Website
|
2017-03-03 17:28:21 +00:00
|
|
|
<http://www.cavium.com/OCTEON-TX_ARM_Processors.html>`_.
|
|
|
|
|
|
|
|
Features
|
|
|
|
--------
|
|
|
|
|
2018-10-10 02:50:56 +00:00
|
|
|
Features of the OCTEON TX SSOVF PMD are:
|
2017-03-03 17:28:21 +00:00
|
|
|
|
|
|
|
- 64 Event queues
|
|
|
|
- 32 Event ports
|
|
|
|
- HW event scheduler
|
|
|
|
- Supports 1M flows per event queue
|
|
|
|
- Flow based event pipelining
|
|
|
|
- Flow pinning support in flow based event pipelining
|
|
|
|
- Queue based event pipelining
|
|
|
|
- Supports ATOMIC, ORDERED, PARALLEL schedule types per flow
|
|
|
|
- Event scheduling QoS based on event queue priority
|
|
|
|
- Open system with configurable amount of outstanding events
|
|
|
|
- HW accelerated dequeue timeout support to enable power management
|
|
|
|
- SR-IOV VF
|
2018-04-09 21:00:26 +00:00
|
|
|
- HW managed event timers support through TIMVF, with high precision and
|
|
|
|
time granularity of 1us.
|
|
|
|
- Up to 64 event timer adapters.
|
2017-03-03 17:28:21 +00:00
|
|
|
|
2018-10-10 02:50:56 +00:00
|
|
|
Supported OCTEON TX SoCs
|
|
|
|
------------------------
|
2017-03-03 17:28:21 +00:00
|
|
|
- CN83xx
|
|
|
|
|
|
|
|
Prerequisites
|
|
|
|
-------------
|
|
|
|
|
2018-04-20 09:34:10 +00:00
|
|
|
See :doc:`../platform/octeontx` for setup information.
|
2017-03-03 17:28:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
Initialization
|
|
|
|
--------------
|
|
|
|
|
2018-10-10 02:50:56 +00:00
|
|
|
The OCTEON TX eventdev is exposed as a vdev device which consists of a set
|
2017-03-03 17:28:21 +00:00
|
|
|
of SSO group and work-slot PCIe VF devices. On EAL initialization,
|
|
|
|
SSO PCIe VF devices will be probed and then the vdev device can be created
|
|
|
|
from the application code, or from the EAL command line based on
|
|
|
|
the number of probed/bound SSO PCIe VF device to DPDK by
|
|
|
|
|
2017-05-04 16:01:19 +00:00
|
|
|
* Invoking ``rte_vdev_init("event_octeontx")`` from the application
|
2017-03-03 17:28:21 +00:00
|
|
|
|
|
|
|
* Using ``--vdev="event_octeontx"`` in the EAL options, which will call
|
2017-05-04 16:01:19 +00:00
|
|
|
rte_vdev_init() internally
|
2017-03-03 17:28:21 +00:00
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
./your_eventdev_application --vdev="event_octeontx"
|
|
|
|
|
2018-01-11 10:21:51 +00:00
|
|
|
|
|
|
|
Selftest
|
|
|
|
--------
|
|
|
|
|
2018-10-10 02:50:56 +00:00
|
|
|
The functionality of OCTEON TX eventdev can be verified using this option,
|
2018-01-11 10:21:51 +00:00
|
|
|
various unit and functional tests are run to verify the sanity.
|
|
|
|
The tests are run once the vdev creation is successfully complete.
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
2018-06-08 03:32:27 +00:00
|
|
|
--vdev="event_octeontx,selftest=1"
|
2018-01-11 10:21:51 +00:00
|
|
|
|
|
|
|
|
2018-04-09 21:00:29 +00:00
|
|
|
Enable TIMvf stats
|
|
|
|
------------------
|
|
|
|
TIMvf stats can be enabled by using this option, by default the stats are
|
|
|
|
disabled.
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
--vdev="event_octeontx,timvf_stats=1"
|
|
|
|
|
|
|
|
|
2017-03-03 17:28:21 +00:00
|
|
|
Limitations
|
|
|
|
-----------
|
|
|
|
|
|
|
|
Burst mode support
|
|
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Burst mode is not supported. Dequeue and Enqueue functions accepts only single
|
|
|
|
event at a time.
|
|
|
|
|
2017-10-24 13:00:36 +00:00
|
|
|
Rx adapter support
|
|
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
When eth_octeontx is used as Rx adapter event schedule type
|
|
|
|
``RTE_SCHED_TYPE_PARALLEL`` is not supported.
|
2018-04-09 21:00:27 +00:00
|
|
|
|
|
|
|
Event timer adapter support
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
When timvf is used as Event timer adapter the clock source mapping is as
|
|
|
|
follows:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
RTE_EVENT_TIMER_ADAPTER_CPU_CLK = TIM_CLK_SRC_SCLK
|
|
|
|
RTE_EVENT_TIMER_ADAPTER_EXT_CLK0 = TIM_CLK_SRC_GPIO
|
|
|
|
RTE_EVENT_TIMER_ADAPTER_EXT_CLK1 = TIM_CLK_SRC_GTI
|
|
|
|
RTE_EVENT_TIMER_ADAPTER_EXT_CLK2 = TIM_CLK_SRC_PTP
|
|
|
|
|
|
|
|
When timvf is used as Event timer adapter event schedule type
|
|
|
|
``RTE_SCHED_TYPE_PARALLEL`` is not supported.
|
2019-11-20 03:48:02 +00:00
|
|
|
|
2020-07-28 18:22:23 +00:00
|
|
|
Max number of events
|
|
|
|
~~~~~~~~~~~~~~~~~~~~
|
2019-11-20 03:48:02 +00:00
|
|
|
|
2020-07-28 18:22:23 +00:00
|
|
|
Max number of events in OCTEON TX Eventdev (SSO) are only limited by DRAM size
|
|
|
|
and they can be configured by passing limits to kernel bootargs as follows:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
ssopf.max_events=4194304
|
|
|
|
|
|
|
|
The same can be verified by looking at the following sysfs entry:
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
# cat /sys/module/ssopf/parameters/max_events
|
|
|
|
4194304
|
|
|
|
|
|
|
|
The maximum number of events that can be added to SSO by the event adapters such
|
|
|
|
as (Rx/Timer) should be limited to the above configured value.
|