[1/3] ring: remove experimental tag for ring reset API
Checks
Commit Message
Remove the experimental tag for rte_ring_reset API that have been around
for 4 releases.
Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
lib/librte_ring/rte_ring.h | 3 ---
lib/librte_ring/rte_ring_version.map | 4 +---
2 files changed, 1 insertion(+), 6 deletions(-)
Comments
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.wang2@arm.com>
> Reviewed-by: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> Reviewed-by: Ruifeng Wang <ruifeng.wang@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.
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.
https://doc.dpdk.org/guides/contributing/abi_versioning.html#versioning-macros
<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.wang2@arm.com>
> > Reviewed-by: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> > Reviewed-by: Ruifeng Wang <ruifeng.wang@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.
>
> 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? 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?
>
> https://doc.dpdk.org/guides/contributing/abi_versioning.html#versioning-
> macros
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.wang2@arm.com>
>>> Reviewed-by: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
>>> Reviewed-by: Ruifeng Wang <ruifeng.wang@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.
>
>>
>> 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.
> 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#versioning-
>> macros
> -----Original Message-----
> From: Kinsella, Ray <mdr@ashroe.eu>
> Sent: 2020年7月6日 14:23
> To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>; Feifei Wang
> <Feifei.Wang2@arm.com>; Konstantin Ananyev
> <konstantin.ananyev@intel.com>; Neil Horman <nhorman@tuxdriver.com>
> Cc: dev@dpdk.org; nd <nd@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.wang2@arm.com>
> >>> Reviewed-by: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> >>> Reviewed-by: Ruifeng Wang <ruifeng.wang@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
On 07/07/2020 04:19, Feifei Wang wrote:
>
>
>> -----Original Message-----
>> From: Kinsella, Ray <mdr@ashroe.eu>
>> Sent: 2020年7月6日 14:23
>> To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>; Feifei Wang
>> <Feifei.Wang2@arm.com>; Konstantin Ananyev
>> <konstantin.ananyev@intel.com>; Neil Horman <nhorman@tuxdriver.com>
>> Cc: dev@dpdk.org; nd <nd@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.wang2@arm.com>
>>>>> Reviewed-by: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
>>>>> Reviewed-by: Ruifeng Wang <ruifeng.wang@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
@@ -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);
@@ -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;