<snip> > > On Thu, Jan 25, 2024 at 11:10:47PM +0100, Morten Br�rup wrote: > > > From: Mattias R�nnblom [mailto:hof...@lysator.liu.se] > > > Sent: Thursday, 25 January 2024 19.54 > > > > > > Why do rte_stdatomic.h functions have the suffix "_explicit"? > > > Especially > > > since there aren't any wrappers for the implicit variants. > > > > > > More to type, more to read. > > > > They have the "_explicit" suffix to make their names similar to those in > stdatomic.h. > > > > You might consider their existence somewhat temporary until C11 stdatomics > can be fully phased in, so there's another argument for similar names. (This > probably does not happen as long as compilers generate slower code for C11 > stdatomics than with their atomic built-ins.) > > yes, there was feedback at the time it was. > > * we should *not* have non-explicit versions of the macros > * the atomic generic functions should be named to match C11 standard > with a rte_ prefix. This was mainly done to ensure that users think through the memory ordering they want to use. This also matches with the compiler atomic built-ins. Without explicit, it is sequentially consistent memory order.
> > > > > > > > > When was this API introduced? Shouldn't it say "experimental" > > > somewhere? > > > > They were introduced as part of the migration to C11. > > I suppose they were not marked experimental because they replaced > something we didn't want anymore (the compiler built-ins for atomics, e.g. > __atomic_load_n()). I don't recall if we discussed experimental marking or > not. > > i don't think we discussed it since they're wrapper macros. > > > > > > > Reverse paper trail: > > https://git.dpdk.org/dpdk/log/lib/eal/include/rte_stdatomic.h > > https://patchwork.dpdk.org/project/dpdk/patch/1692738045-32363-2-git- > send-email-roret...@linux.microsoft.com/ > > https://patchwork.dpdk.org/project/dpdk/patch/1692738045-32363-2-git- > send-email-roret...@linux.microsoft.com/ > >