On Thu, Jul 16, 2020 at 6:16 AM Phil Yang <phil.y...@arm.com> wrote: > > David Marchand <david.march...@redhat.com> writes: > > > Subject: Re: [PATCH v4 1/2] mbuf: use C11 atomic built-ins for refcnt > > operations > > > > On Thu, Jul 9, 2020 at 5:59 PM Phil Yang <phil.y...@arm.com> wrote: > > > > > > Use C11 atomic built-ins with explicit ordering instead of rte_atomic > > > ops which enforce unnecessary barriers on aarch64. > > > > > > Signed-off-by: Phil Yang <phil.y...@arm.com> > > > Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com> > > > --- > > > v4: > > > 1. Add union for refcnt_atomic and refcnt in rte_mbuf_ext_shared_info > > > to avoid ABI breakage. (Olivier) > > > 2. Add notice of refcnt_atomic deprecation. (Honnappa) > > > > v4 does not pass the checks (in both my env, and Travis). > > https://travis-ci.com/github/ovsrobot/dpdk/jobs/359393389#L2405 > > I think we need an exception in 'libabigail.abignore' for this change. > Is that OK with you?
Testing the series with libabigail 1.7.0: Functions changes summary: 0 Removed, 1 Changed (6 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 function with some indirect sub-type change: [C]'function unsigned int rte_reorder_drain(rte_reorder_buffer*, rte_mbuf**, unsigned int)' at rte_reorder.c:367:1 has some indirect sub-type changes: parameter 2 of type 'rte_mbuf**' has sub-type changes: in pointed to type 'rte_mbuf*': in pointed to type 'struct rte_mbuf' at rte_mbuf_core.h:469:1: type size hasn't changed 1 data member changes (1 filtered): type of 'rte_mbuf_ext_shared_info* rte_mbuf::shinfo' changed: in pointed to type 'struct rte_mbuf_ext_shared_info' at rte_mbuf_core.h:679:1: type size hasn't changed 1 data member change: data member rte_atomic16_t rte_mbuf_ext_shared_info::refcnt_atomic at offset 128 (in bits) became anonymous data member 'union {rte_atomic16_t refcnt_atomic; uint16_t refcnt;}' Error: ABI issue reported for 'abidiff --suppr /home/dmarchan/dpdk/devtools/../devtools/libabigail.abignore --no-added-syms --headers-dir1 /home/dmarchan/abi/v20.05/build-gcc-static/usr/local/include --headers-dir2 /home/dmarchan/builds/build-gcc-static/install/usr/local/include /home/dmarchan/abi/v20.05/build-gcc-static/dump/librte_reorder.dump /home/dmarchan/builds/build-gcc-static/install/dump/librte_reorder.dump' ABIDIFF_ABI_CHANGE, this change requires a review (abidiff flagged this as a potential issue). We will have no other update on mbuf for 20.08, so the following rule can do the job for 20.08 and we will remove it in 20.11. diff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore index daa4631bf..b35f91257 100644 --- a/devtools/libabigail.abignore +++ b/devtools/libabigail.abignore @@ -52,6 +52,10 @@ [suppress_type] type_kind = struct name = rte_epoll_event +; Ignore updates of rte_mbuf_ext_shared_info +[suppress_type] + type_kind = struct + name = rte_mbuf_ext_shared_info ;;;;;;;;;;;;;;;;;;;;;; ; Temporary exceptions till DPDK 20.11 Olivier, Dodji, Ray? -- David Marchand