Go to file
Pavan Nikhilesh 3c838062b9 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>
2021-04-12 09:23:34 +02:00
.ci build: alias default build as generic 2021-04-09 19:11:26 +02:00
.github/workflows ci: catch coredumps 2021-03-03 10:05:23 +01:00
app test/event: add unit tests for periodic timer 2021-04-12 09:23:34 +02:00
buildtools build: remove Windows export symbol list 2021-04-08 17:57:33 +02:00
config event/dlb: remove driver 2021-04-12 09:21:30 +02:00
devtools build: alias default build as generic 2021-04-09 19:11:26 +02:00
doc eventdev: introduce event vector Rx capability 2021-04-12 09:23:34 +02:00
drivers event/octeontx2: use always virtual counter for timer 2021-04-12 09:23:34 +02:00
examples examples/vhost_crypto: remove unused short option 2021-03-31 10:02:18 +02:00
kernel build: support KNI cross-compilation 2021-03-15 23:43:40 +01:00
lib eventdev: introduce event vector Rx capability 2021-04-12 09:23:34 +02:00
license license: remove pmdinfogen from exceptions 2021-02-05 18:13:19 +01:00
usertools usertools: show hugepages requested/set on failure 2021-03-25 18:07:47 +01:00
.editorconfig devtools: add EditorConfig file 2020-02-22 21:05:22 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore regex/mlx5: introduce driver for BlueField 2 2020-07-21 19:04:05 +02:00
.travis.yml ci: update arm64 Travis jobs to Graviton2 2021-03-02 13:43:38 +01:00
ABI_VERSION version: 21.05-rc0 2021-02-15 11:08:19 +01:00
MAINTAINERS event/dlb: remove driver 2021-04-12 09:21:30 +02:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt build: alias default build as generic 2021-04-09 19:11:26 +02:00
meson.build build: enable a developer mode setting 2021-04-09 19:07:25 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 21.05-rc0 2021-02-15 11:08:19 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org