07/07/2021 21:04, Honnappa Nagarahalli: > <snip> > > > > > In the deprecation notices of DPDK 21.05, we can still read this: > > " > > * rte_atomicNN_xxx: These APIs do not take memory order parameter. This > > does > > not allow for writing optimized code for all the CPU architectures > > supported > > in DPDK. DPDK will adopt C11 atomic operations semantics and provide > > wrappers > > using C11 atomic built-ins. These wrappers must be used for patches that > > need to be merged in 20.08 onwards. This change will not introduce any > > performance degradation. > > > > * rte_smp_*mb: These APIs provide full barrier functionality. However, many > > use cases do not require full barriers. To support such use cases, DPDK > > will > > adopt C11 barrier semantics and provide wrappers using C11 atomic > > built-ins. > > These wrappers must be used for patches that need to be merged in 20.08 > > onwards. This change will not introduce any performance degradation. > > " > > > > Should we keep these notifications forever? > I do not think we need to keep them forever (unless the precedence is to keep > all the older deprecations). > > > > > It is very difficult to find which wrapper to use. > Actually, the deprecations are incorrect on the 'wrappers'. > When the deprecations were added, the understanding was we will develop > wrappers, the discussion was not concluded. When we made the decision, we > decided to use the C++11 atomic built-ins. Only wrapper developed was > rte_atomic_thread_fence. This is documented in the following blog. > > > > > This is the guide we have: > > https://doc.dpdk.org/guides/prog_guide/writing_efficient_code.html#locks- > > and-atomic-operations > > There are 2 blog posts: > > https://www.dpdk.org/blog/2021/03/26/dpdk-adopts-the-c11-memory- > > model/ > > https://www.dpdk.org/blog/2021/06/09/reader-writer-concurrency/ > > > > Basically it says we should use "__atomic builtins" but there is example for > > simple situations like counters, memory barriers, etc. > > Please who could work on improving the documentation? > There is good amount of information on how to use the __atomic builtins for > counters, memory barriers etc. > It would make sense to document something in DPDK if we implement our own > wrappers.
Please fix deprecation notice and think about how to document the compiler builtin choice.