> -----Original Message----- > From: Kinsella, Ray <m...@ashroe.eu> > Sent: 2020年7月6日 14:23 > To: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>; Feifei Wang > <feifei.wa...@arm.com>; Konstantin Ananyev > <konstantin.anan...@intel.com>; Neil Horman <nhor...@tuxdriver.com> > Cc: dev@dpdk.org; nd <n...@arm.com> > Subject: Re: [PATCH 1/3] ring: remove experimental tag for ring reset API > > > > On 03/07/2020 19:46, Honnappa Nagarahalli wrote: > > <snip> > > > >> > >> On 03/07/2020 11:26, Feifei Wang wrote: > >>> Remove the experimental tag for rte_ring_reset API that have been > >>> around for 4 releases. > >>> > >>> Signed-off-by: Feifei Wang <feifei.wa...@arm.com> > >>> Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > >>> Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com> > >>> --- > >>> lib/librte_ring/rte_ring.h | 3 --- > >>> lib/librte_ring/rte_ring_version.map | 4 +--- > >>> 2 files changed, 1 insertion(+), 6 deletions(-) > >>> > >>> diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_ring/rte_ring.h > >>> index f67141482..7181c33b4 100644 > >>> --- a/lib/librte_ring/rte_ring.h > >>> +++ b/lib/librte_ring/rte_ring.h > >>> @@ -663,15 +663,12 @@ rte_ring_dequeue(struct rte_ring *r, void > **obj_p) > >>> * > >>> * This function flush all the elements in a ring > >>> * > >>> - * @b EXPERIMENTAL: this API may change without prior notice > >>> - * > >>> * @warning > >>> * Make sure the ring is not in use while calling this function. > >>> * > >>> * @param r > >>> * A pointer to the ring structure. > >>> */ > >>> -__rte_experimental > >>> void > >>> rte_ring_reset(struct rte_ring *r); > >>> > >>> diff --git a/lib/librte_ring/rte_ring_version.map > >>> b/lib/librte_ring/rte_ring_version.map > >>> index e88c143cf..aec6f3820 100644 > >>> --- a/lib/librte_ring/rte_ring_version.map > >>> +++ b/lib/librte_ring/rte_ring_version.map > >>> @@ -8,6 +8,7 @@ DPDK_20.0 { > >>> rte_ring_init; > >>> rte_ring_list_dump; > >>> rte_ring_lookup; > >>> + rte_ring_reset; > >>> > >>> local: *; > >>> }; > >>> @@ -15,9 +16,6 @@ DPDK_20.0 { > >>> EXPERIMENTAL { > >>> global: > >>> > >>> - # added in 19.08 > >>> - rte_ring_reset; > >>> - > >>> # added in 20.02 > >>> rte_ring_create_elem; > >>> rte_ring_get_memsize_elem; > >> > >> So strictly speaking, rte_ring_reset is part of the DPDK_21 ABI, not > >> the v20.0 ABI. > > Thanks Ray for clarifying this. > > Thanks very much for pointing this. > >> > >> The way to solve is to add it the DPDK_21 ABI in the map file. > >> And then use the VERSION_SYMBOL_EXPERIMENTAL to alias to > experimental > >> if necessary. > > Is using VERSION_SYMBOL_EXPERIMENTAL a must? > > Purely at the discretion of the contributor and maintainer. > If it has been around for a while, applications are using it and changing the > symbol will break them. > > You may choose to provide the alias or not. Ok, in the new patch version, I will add it into the DPDK_21 ABI but the VERSION_SYMBOL_EXPERIMENTAL will not be added, because if it is added in this version, it is still needed to be removed in the near future.
Thanks very much for your review. > > > The documentation also seems to be vague. It says " The macro is used > when a symbol matures to become part of the stable ABI, to provide an alias > to experimental for some time". What does 'some time' mean? > > "Some time" is a bit vague alright, should be "until the next major ABI > version" - I will fix. > > > > >> > >> https://doc.dpdk.org/guides/contributing/abi_versioning.html#versioni > >> ng- > >> macros