[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