[dpdk-dev] [PATCH v3 04/14] eventdev: move inline APIs into separate structure
Jerin Jacob
jerinjacobk at gmail.com
Thu Oct 14 11:20:52 CEST 2021
On Wed, Oct 6, 2021 at 12:21 PM <pbhagavatula at marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
>
> Move fastpath inline function pointers from rte_eventdev into a
> separate structure accessed via a flat array.
> The intension is to make rte_eventdev and related structures private
intention
> to avoid future API/ABI breakages.`
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
> Acked-by: Ray Kinsella <mdr at ashroe.eu>
> ---
> lib/eventdev/eventdev_pmd.h | 38 +++++++++++
> lib/eventdev/eventdev_pmd_pci.h | 4 +-
> lib/eventdev/eventdev_private.c | 112 +++++++++++++++++++++++++++++++
> lib/eventdev/meson.build | 1 +
> lib/eventdev/rte_eventdev.c | 22 +++++-
> lib/eventdev/rte_eventdev_core.h | 28 ++++++++
> lib/eventdev/version.map | 6 ++
> 7 files changed, 209 insertions(+), 2 deletions(-)
> create mode 100644 lib/eventdev/eventdev_private.c
>
sources = files(
> + 'eventdev_private.c',
> 'rte_eventdev.c',
> 'rte_event_ring.c',
> 'eventdev_trace_points.c',
Since you are reworking, please sort this in alphabetical order.
>
> +struct rte_event_fp_ops {
> + event_enqueue_t enqueue;
> + /**< PMD enqueue function. */
> + event_enqueue_burst_t enqueue_burst;
> + /**< PMD enqueue burst function. */
> + event_enqueue_burst_t enqueue_new_burst;
> + /**< PMD enqueue burst new function. */
> + event_enqueue_burst_t enqueue_forward_burst;
> + /**< PMD enqueue burst fwd function. */
> + event_dequeue_t dequeue;
> + /**< PMD dequeue function. */
> + event_dequeue_burst_t dequeue_burst;
> + /**< PMD dequeue burst function. */
> + event_tx_adapter_enqueue_t txa_enqueue;
> + /**< PMD Tx adapter enqueue function. */
> + event_tx_adapter_enqueue_t txa_enqueue_same_dest;
> + /**< PMD Tx adapter enqueue same destination function. */
> + event_crypto_adapter_enqueue_t ca_enqueue;
> + /**< PMD Crypto adapter enqueue function. */
> + uintptr_t reserved[2];
> +
> + void **data;
Since access to data is a must for all ops, Please move that to first.
Also, you can merge reserved and reserved2 in that case.
> + /**< points to array of internal port data pointers */
> + uintptr_t reserved2[4];
> +} __rte_cache_aligned;
> +
> +extern struct rte_event_fp_ops rte_event_fp_ops[RTE_EVENT_MAX_DEVS];
> +
> #define RTE_EVENTDEV_NAME_MAX_LEN (64)
> /**< @internal Max length of name of event PMD */
>
> diff --git a/lib/eventdev/version.map b/lib/eventdev/version.map
> index 5f1fe412a4..a3a732089b 100644
> --- a/lib/eventdev/version.map
> +++ b/lib/eventdev/version.map
> @@ -85,6 +85,9 @@ DPDK_22 {
> rte_event_timer_cancel_burst;
> rte_eventdevs;
>
> + #added in 21.11
> + rte_event_fp_ops;
> +
> local: *;
> };
>
> @@ -141,6 +144,9 @@ EXPERIMENTAL {
> INTERNAL {
> global:
>
> + event_dev_fp_ops_reset;
> + event_dev_fp_ops_set;
> + event_dev_probing_finish;
> rte_event_pmd_selftest_seqn_dynfield_offset;
> rte_event_pmd_allocate;
> rte_event_pmd_get_named_dev;
> --
> 2.17.1
>
More information about the dev
mailing list