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