On 07/07/2020 04:19, Feifei Wang wrote:
> 
> 
>> -----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.

That is 100%

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