On Tue, 26 May 2026 16:23:53 -0700 Stephen Hemminger <[email protected]> wrote:
> Remove the RTE_USE_C11_MEM_MODEL build switch; C11 atomics are now > the default for all platforms. Unifies __rte_ring_update_tail into > the C11 form (atomic_store_release replaces the older rte_smp_wmb + > plain store on the generic path) and renames rte_ring_generic_pvt.h > to rte_ring_x86_pvt.h to reflect its new scope. > > Also splits the head-move helper into separate ST and MT variants, > removing the runtime is_st branch from the MT retry loop. > This gets small boost and scopes the following exception > more tightly. > > Exception: on x86 with GCC, atomic_compare_exchange on the head CAS > regresses MP/MC contended throughput by ~20% existing hand-written > cmpxchg. As a workaround, GCC-on-x86 builds use the older > __sync_bool_compare_and_swap builtin, which generates equivalent > code to the original asm. Can be reverted if/when GCC gets > fixed; similar issue was observed in Linux kernel. > > Signed-off-by: Stephen Hemminger <[email protected]> > --- This is a big enough change, going to split it up as its own series.

