[PATCH] eal: introduce atomics abstraction
Tyler Retzlaff
roretzla at linux.microsoft.com
Wed Feb 1 22:41:11 CET 2023
On Wed, Feb 01, 2023 at 01:07:59AM +0000, Honnappa Nagarahalli wrote:
>
> > -----Original Message-----
> > From: Thomas Monjalon <thomas at monjalon.net>
> > Sent: Tuesday, January 31, 2023 4:42 PM
> > To: Honnappa Nagarahalli <Honnappa.Nagarahalli at arm.com>
> > Cc: dev at dpdk.org; bruce.richardson at intel.com; mb at smartsharesystems.com;
> > Tyler Retzlaff <roretzla at linux.microsoft.com>; david.marchand at redhat.com;
> > jerinj at marvell.com; konstantin.ananyev at huawei.com; ferruh.yigit at amd.com
> > Subject: Re: [PATCH] eal: introduce atomics abstraction
> >
> > Honnappa, please could you give your view on the future of atomics in DPDK?
> Thanks Thomas, apologies it has taken me a while to get to this discussion.
>
> IMO, we do not need DPDK's own abstractions. APIs from stdatomic.h (stdatomics as is called here) already serve the purpose. These APIs are well understood and documented.
i agree that whatever atomics APIs we advocate for should align with the
standard C atomics for the reasons you state including implied semantics.
>
> For environments where stdatomics are not supported, we could have a stdatomic.h in DPDK implementing the same APIs (we have to support only _explicit APIs). This allows the code to use stdatomics APIs and when we move to minimum supported standard C11, we just need to get rid of the file in DPDK repo.
my concern with this is that if we provide a stdatomic.h or introduce names
from stdatomic.h it's a violation of the C standard.
references:
* ISO/IEC 9899:2011 sections 7.1.2, 7.1.3.
* GNU libc manual
https://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html
in effect the header, the names and in some instances namespaces introduced
are reserved by the implementation. there are several reasons in the GNU libc
manual that explain the justification for these reservations and if
if we think about ODR and ABI compatibility we can conceive of others.
i'll also remark that the inter-mingling of names from the POSIX
standard implicitly exposed as a part of the EAL public API has been
problematic for portability.
let's discuss this from here. if there's still overwhelming desire to go
this route then we'll just do our best.
ty
More information about the dev
mailing list