> From: Konstantin Ananyev [mailto:konstantin.v.anan...@yandex.ru]
> Sent: Tuesday, 24 October 2023 10.43
> 
> 17.10.2023 21:31, Tyler Retzlaff пишет:
> > Replace the use of gcc builtin __atomic_xxx intrinsics with
> > corresponding rte_atomic_xxx optional stdatomic API
> >
> > Signed-off-by: Tyler Retzlaff <roret...@linux.microsoft.com>
> > ---

[...]

> >     if (!single)
> > -           rte_wait_until_equal_32(&ht->tail, old_val, __ATOMIC_RELAXED);
> > +           rte_wait_until_equal_32((volatile uint32_t *)(uintptr_t)&ht-
> >tail, old_val,
> 
> I suppose we do need that double type conversion only for atomic types
> right?
> 
> > +                   rte_memory_order_relaxed);
> >
> >     ht->tail = new_val;
> >   }

This got me thinking...

Do we want to cast away the value's atomic attribute like this, or should we 
introduce new rte_atomic_wait_XX() functions with the parameters being pointers 
to atomic values, instead of pointers to simple values?

Just a thought.

The initial rte_atomic_wait_XX() implementations could simply cast a away the 
atomic attribute like here.

Reply via email to