> -----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

Reply via email to