[PATCH 2/5] ring: use GCC builtin as alternative to rte_atomic32
Konstantin Ananyev
konstantin.ananyev at huawei.com
Thu Jun 4 17:43:32 CEST 2026
> On Thu, 4 Jun 2026 15:11:25 +0000
> Konstantin Ananyev <konstantin.ananyev at huawei.com> wrote:
>
> > > /**
> > > * @internal This is a helper function that moves the producer/consumer
> head
> > > * optimized for single threaded case
> > > @@ -82,7 +81,7 @@ __rte_ring_headtail_move_head_st(struct
> rte_ring_headtail
> > > *d,
> > > /* Single producer: only this thread writes d->head,
> > > * so a relaxed load is sufficient.
> > > */
> > > - *old_head = rte_atomic_load_explicit(&d->head,
> > > rte_memory_order_relaxed);
> > > + *old_head = rte_atomic_load_explicit(&d->head,
> > > rte_memory_order_acquire);
> >
> > Not sure, why it had changed to 'acquire' here?
> > Looks like just patch splitting mistake, no?
>
> I should have kept it as relaxed for the first load.
Yes, I believe so.
In fact, I reverted it back to 'relaxed' in final version (after applying all 5 patches)
and run both stress_ring_autotest and stress_soring_autotest on ARM box in our lab.
All passed.
Konstantin
More information about the dev
mailing list