Hi David,

> Hello,
> 
> On Thu, Sep 30, 2021 at 7:42 PM Sean Morrissey <sean.morris...@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.

Reply via email to