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.


-- 
David Marchand

Reply via email to