[dpdk-dev] [PATCH v1] lib/ring: remove experimental tag from functions
Ananyev, Konstantin
konstantin.ananyev at intel.com
Sat Oct 2 11:50:08 CEST 2021
Hi David,
> Hello,
>
> On Thu, Sep 30, 2021 at 7:42 PM Sean Morrissey <sean.morrissey at intel.com> wrote:
> >
> > These methods were introduced in 20.05.
> > There has been no changes in their public API since then.
> > They seem mature enough to remove the experimental tag.
>
> I am a bit skeptical at the patch.
> Can you double check?
>
>
> /** prod/cons sync types */
> enum rte_ring_sync_type {
> RTE_RING_SYNC_MT, /**< multi-thread safe (default mode) */
> RTE_RING_SYNC_ST, /**< single thread only */
> #ifdef ALLOW_EXPERIMENTAL_API
> RTE_RING_SYNC_MT_RTS, /**< multi-thread relaxed tail sync */
> RTE_RING_SYNC_MT_HTS, /**< multi-thread head/tail sync */
> #endif
> };
>
> There is also in rte_ring_elem.h:
>
> #ifdef ALLOW_EXPERIMENTAL_API
> #include <rte_ring_hts.h>
> #include <rte_ring_rts.h>
> #endif
>
> And later
>
> static __rte_always_inline unsigned int
> rte_ring_enqueue_bulk_elem(struct rte_ring *r, const void *obj_table,
> unsigned int esize, unsigned int n, unsigned int *free_space)
> {
> ...
> #ifdef ALLOW_EXPERIMENTAL_API
> case RTE_RING_SYNC_MT_RTS:
> return rte_ring_mp_rts_enqueue_bulk_elem(r, obj_table, esize, n,
> free_space);
>
>
> I don't think those HTS and RTS modes work if the code is compiled
> without the experimental flag.
>
You are right, sorry I forgot about these things ☹
Will change in v2.
More information about the dev
mailing list