eventdev: introduce event vector Rx capability
authorPavan Nikhilesh <pbhagavatula@marvell.com>
Wed, 31 Mar 2021 09:29:56 +0000 (14:59 +0530)
committerJerin Jacob <jerinj@marvell.com>
Mon, 12 Apr 2021 07:23:34 +0000 (09:23 +0200)
commit3c838062b91f488650d71c280e1c31de74ffd429
treea4e6c7c3e954e43264fe66c059e9c15e5f89df73
parent1cc44d409271a3eedc5da5cef47f25088c968ae6
eventdev: introduce event vector Rx capability

Introduce event ethernet Rx adapter event vector capability.

If an event eth Rx adapter has the capability of
RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR then a given Rx queue
can be configured to enable event vectorization by passing the
flag RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR to
rte_event_eth_rx_adapter_queue_conf::rx_queue_flags while configuring
Rx adapter through rte_event_eth_rx_adapter_queue_add().

The max vector size, vector timeout define the vector size and
mempool used for allocating vector event are configured through
rte_event_eth_rx_adapter_queue_add. The element size of the element
in the vector pool should be equal to
    sizeof(struct rte_event_vector) + (vector_sz * sizeof(uintptr_t))

Application can use `rte_event_vector_pool_create` to create the
vector mempool used for
rte_event_eth_rx_adapter_queue_conf::vector_mp.

The Rx adapter would be responsible for vectorizing the mbufs
based on the flow, the vector limits configured by the application
and add the vector event of mbufs to the event queue set via
rte_event_eth_rx_adapter_queue_conf::ev::queue_id.
It should also mark rte_event_vector::union_valid and fill
rte_event_vector::port, rte_event_vector::queue.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com>
doc/guides/prog_guide/event_ethernet_rx_adapter.rst
lib/librte_eventdev/eventdev_pmd.h
lib/librte_eventdev/rte_event_eth_rx_adapter.c
lib/librte_eventdev/rte_event_eth_rx_adapter.h
lib/librte_eventdev/rte_eventdev.h
lib/librte_eventdev/version.map