DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] stack: remove experimental tag from API
@ 2020-05-28  1:04 Gage Eads
  2020-05-28  5:46 ` Ray Kinsella
                   ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Gage Eads @ 2020-05-28  1:04 UTC (permalink / raw)
  To: dev
  Cc: thomas, david.marchand, mdr, nhorman, phil.yang,
	honnappa.nagarahalli, olivier.matz

The stack library was first released in 19.05, and its interfaces have been
stable since their initial introduction. This commit promotes the full
interface to stable, starting with the 20.08 ABI.

Signed-off-by: Gage Eads <gage.eads@intel.com>
---
 lib/librte_stack/rte_stack.h           | 29 -----------------------------
 lib/librte_stack/rte_stack_lf.h        |  2 --
 lib/librte_stack/rte_stack_std.h       |  3 ---
 lib/librte_stack/rte_stack_version.map |  2 +-
 4 files changed, 1 insertion(+), 35 deletions(-)

diff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h
index 27ddb199e..343dd019a 100644
--- a/lib/librte_stack/rte_stack.h
+++ b/lib/librte_stack/rte_stack.h
@@ -4,7 +4,6 @@
 
 /**
  * @file rte_stack.h
- * @b EXPERIMENTAL: this API may change without prior notice
  *
  * RTE Stack
  *
@@ -98,9 +97,6 @@ struct rte_stack {
 #include "rte_stack_lf.h"
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Push several objects on the stack (MT-safe).
  *
  * @param s
@@ -112,7 +108,6 @@ struct rte_stack {
  * @return
  *   Actual number of objects pushed (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
 {
@@ -126,9 +121,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Pop several objects from the stack (MT-safe).
  *
  * @param s
@@ -140,7 +132,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
  * @return
  *   Actual number of objects popped (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 {
@@ -154,9 +145,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Return the number of used entries in a stack.
  *
  * @param s
@@ -164,7 +152,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
  * @return
  *   The number of used entries in the stack.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_count(struct rte_stack *s)
 {
@@ -177,9 +164,6 @@ rte_stack_count(struct rte_stack *s)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Return the number of free entries in a stack.
  *
  * @param s
@@ -187,7 +171,6 @@ rte_stack_count(struct rte_stack *s)
  * @return
  *   The number of free entries in the stack.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_free_count(struct rte_stack *s)
 {
@@ -197,9 +180,6 @@ rte_stack_free_count(struct rte_stack *s)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Create a new stack named *name* in memory.
  *
  * This function uses ``memzone_reserve()`` to allocate memory for a stack of
@@ -226,28 +206,20 @@ rte_stack_free_count(struct rte_stack *s)
  *    - ENOMEM - insufficient memory to create the stack
  *    - ENAMETOOLONG - name size exceeds RTE_STACK_NAMESIZE
  */
-__rte_experimental
 struct rte_stack *
 rte_stack_create(const char *name, unsigned int count, int socket_id,
 		 uint32_t flags);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Free all memory used by the stack.
  *
  * @param s
  *   Stack to free
  */
-__rte_experimental
 void
 rte_stack_free(struct rte_stack *s);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Lookup a stack by its name.
  *
  * @param name
@@ -258,7 +230,6 @@ rte_stack_free(struct rte_stack *s);
  *    - ENOENT - Stack with name *name* not found.
  *    - EINVAL - *name* pointer is NULL.
  */
-__rte_experimental
 struct rte_stack *
 rte_stack_lookup(const char *name);
 
diff --git a/lib/librte_stack/rte_stack_lf.h b/lib/librte_stack/rte_stack_lf.h
index e67630c27..eb106e64e 100644
--- a/lib/librte_stack/rte_stack_lf.h
+++ b/lib/librte_stack/rte_stack_lf.h
@@ -27,7 +27,6 @@
  * @return
  *   Actual number of objects enqueued.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_lf_push(struct rte_stack *s,
 		    void * const *obj_table,
@@ -66,7 +65,6 @@ __rte_stack_lf_push(struct rte_stack *s,
  * @return
  *   - Actual number of objects popped.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_lf_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 {
diff --git a/lib/librte_stack/rte_stack_std.h b/lib/librte_stack/rte_stack_std.h
index 7142cbf8e..ae28add5c 100644
--- a/lib/librte_stack/rte_stack_std.h
+++ b/lib/librte_stack/rte_stack_std.h
@@ -19,7 +19,6 @@
  * @return
  *   Actual number of objects pushed (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
 		     unsigned int n)
@@ -59,7 +58,6 @@ __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
  * @return
  *   Actual number of objects popped (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 {
@@ -94,7 +92,6 @@ __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
  * @return
  *   The number of used entries in the stack.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_std_count(struct rte_stack *s)
 {
diff --git a/lib/librte_stack/rte_stack_version.map b/lib/librte_stack/rte_stack_version.map
index 6662679c3..22c703d3b 100644
--- a/lib/librte_stack/rte_stack_version.map
+++ b/lib/librte_stack/rte_stack_version.map
@@ -1,4 +1,4 @@
-EXPERIMENTAL {
+DPDK_20.0.3 {
 	global:
 
 	rte_stack_create;
-- 
2.13.6


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH] stack: remove experimental tag from API
  2020-05-28  1:04 [dpdk-dev] [PATCH] stack: remove experimental tag from API Gage Eads
@ 2020-05-28  5:46 ` Ray Kinsella
  2020-05-28  8:10   ` Thomas Monjalon
  2020-05-28 15:04 ` [dpdk-dev] [20.11] [PATCH v2] " Gage Eads
  2020-09-30 21:39 ` [dpdk-dev] [PATCH] " Gage Eads
  2 siblings, 1 reply; 13+ messages in thread
From: Ray Kinsella @ 2020-05-28  5:46 UTC (permalink / raw)
  To: Gage Eads, dev
  Cc: thomas, david.marchand, nhorman, phil.yang, honnappa.nagarahalli,
	olivier.matz

Hi Gage,

Do you have any idea.
If the change from experimental to stable symbol is likely to break anyone's application?
(are folks actively using the api with shared libraries)

If so, you _may_ consider offering a temporary alias to experimental until the v21 is declared at 20.11.
This is entirely at your discretion, see
https://doc.dpdk.org/guides/contributing/abi_versioning.html (4.3.1.4)

Please see my additional comments on the map file below.

On 28/05/2020 02:04, Gage Eads wrote:
> The stack library was first released in 19.05, and its interfaces have been
> stable since their initial introduction. This commit promotes the full
> interface to stable, starting with the 20.08 ABI.
> 
> Signed-off-by: Gage Eads <gage.eads@intel.com>
> ---
>  lib/librte_stack/rte_stack.h           | 29 -----------------------------
>  lib/librte_stack/rte_stack_lf.h        |  2 --
>  lib/librte_stack/rte_stack_std.h       |  3 ---
>  lib/librte_stack/rte_stack_version.map |  2 +-
>  4 files changed, 1 insertion(+), 35 deletions(-)
> 
> diff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h
> index 27ddb199e..343dd019a 100644
> --- a/lib/librte_stack/rte_stack.h
> +++ b/lib/librte_stack/rte_stack.h
> @@ -4,7 +4,6 @@
>  
>  /**
>   * @file rte_stack.h
> - * @b EXPERIMENTAL: this API may change without prior notice
>   *
>   * RTE Stack
>   *
> @@ -98,9 +97,6 @@ struct rte_stack {
>  #include "rte_stack_lf.h"
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Push several objects on the stack (MT-safe).
>   *
>   * @param s
> @@ -112,7 +108,6 @@ struct rte_stack {
>   * @return
>   *   Actual number of objects pushed (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
>  {
> @@ -126,9 +121,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
>  }
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Pop several objects from the stack (MT-safe).
>   *
>   * @param s
> @@ -140,7 +132,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
>   * @return
>   *   Actual number of objects popped (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  {
> @@ -154,9 +145,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  }
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Return the number of used entries in a stack.
>   *
>   * @param s
> @@ -164,7 +152,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>   * @return
>   *   The number of used entries in the stack.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_count(struct rte_stack *s)
>  {
> @@ -177,9 +164,6 @@ rte_stack_count(struct rte_stack *s)
>  }
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Return the number of free entries in a stack.
>   *
>   * @param s
> @@ -187,7 +171,6 @@ rte_stack_count(struct rte_stack *s)
>   * @return
>   *   The number of free entries in the stack.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_free_count(struct rte_stack *s)
>  {
> @@ -197,9 +180,6 @@ rte_stack_free_count(struct rte_stack *s)
>  }
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Create a new stack named *name* in memory.
>   *
>   * This function uses ``memzone_reserve()`` to allocate memory for a stack of
> @@ -226,28 +206,20 @@ rte_stack_free_count(struct rte_stack *s)
>   *    - ENOMEM - insufficient memory to create the stack
>   *    - ENAMETOOLONG - name size exceeds RTE_STACK_NAMESIZE
>   */
> -__rte_experimental
>  struct rte_stack *
>  rte_stack_create(const char *name, unsigned int count, int socket_id,
>  		 uint32_t flags);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Free all memory used by the stack.
>   *
>   * @param s
>   *   Stack to free
>   */
> -__rte_experimental
>  void
>  rte_stack_free(struct rte_stack *s);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Lookup a stack by its name.
>   *
>   * @param name
> @@ -258,7 +230,6 @@ rte_stack_free(struct rte_stack *s);
>   *    - ENOENT - Stack with name *name* not found.
>   *    - EINVAL - *name* pointer is NULL.
>   */
> -__rte_experimental
>  struct rte_stack *
>  rte_stack_lookup(const char *name);
>  
> diff --git a/lib/librte_stack/rte_stack_lf.h b/lib/librte_stack/rte_stack_lf.h
> index e67630c27..eb106e64e 100644
> --- a/lib/librte_stack/rte_stack_lf.h
> +++ b/lib/librte_stack/rte_stack_lf.h
> @@ -27,7 +27,6 @@
>   * @return
>   *   Actual number of objects enqueued.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_lf_push(struct rte_stack *s,
>  		    void * const *obj_table,
> @@ -66,7 +65,6 @@ __rte_stack_lf_push(struct rte_stack *s,
>   * @return
>   *   - Actual number of objects popped.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_lf_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  {
> diff --git a/lib/librte_stack/rte_stack_std.h b/lib/librte_stack/rte_stack_std.h
> index 7142cbf8e..ae28add5c 100644
> --- a/lib/librte_stack/rte_stack_std.h
> +++ b/lib/librte_stack/rte_stack_std.h
> @@ -19,7 +19,6 @@
>   * @return
>   *   Actual number of objects pushed (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
>  		     unsigned int n)
> @@ -59,7 +58,6 @@ __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
>   * @return
>   *   Actual number of objects popped (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  {
> @@ -94,7 +92,6 @@ __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>   * @return
>   *   The number of used entries in the stack.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_std_count(struct rte_stack *s)
>  {
> diff --git a/lib/librte_stack/rte_stack_version.map b/lib/librte_stack/rte_stack_version.map
> index 6662679c3..22c703d3b 100644
> --- a/lib/librte_stack/rte_stack_version.map
> +++ b/lib/librte_stack/rte_stack_version.map
> @@ -1,4 +1,4 @@
> -EXPERIMENTAL {
> +DPDK_20.0.3 {
>  	global:
>  
>  	rte_stack_create;
> 

Should be DPDK_21, the next major ABI version is v21. 



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH] stack: remove experimental tag from API
  2020-05-28  5:46 ` Ray Kinsella
@ 2020-05-28  8:10   ` Thomas Monjalon
  2020-05-28  8:22     ` Ray Kinsella
  2020-05-28 14:18     ` Eads, Gage
  0 siblings, 2 replies; 13+ messages in thread
From: Thomas Monjalon @ 2020-05-28  8:10 UTC (permalink / raw)
  To: Gage Eads, Ray Kinsella
  Cc: dev, david.marchand, nhorman, phil.yang, honnappa.nagarahalli,
	olivier.matz

28/05/2020 07:46, Ray Kinsella:
> Hi Gage,
> 
> Do you have any idea.
> If the change from experimental to stable symbol is likely to break anyone's application?
> (are folks actively using the api with shared libraries)
> 
> If so, you _may_ consider offering a temporary alias to experimental until the v21 is declared at 20.11.
> This is entirely at your discretion, see
> https://doc.dpdk.org/guides/contributing/abi_versioning.html (4.3.1.4)

Or we can wait 20.11.

Anyway I think it deserves a comment in the release notes (API section).




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH] stack: remove experimental tag from API
  2020-05-28  8:10   ` Thomas Monjalon
@ 2020-05-28  8:22     ` Ray Kinsella
  2020-05-28 14:18     ` Eads, Gage
  1 sibling, 0 replies; 13+ messages in thread
From: Ray Kinsella @ 2020-05-28  8:22 UTC (permalink / raw)
  To: Thomas Monjalon, Gage Eads
  Cc: dev, david.marchand, nhorman, phil.yang, honnappa.nagarahalli,
	olivier.matz



On 28/05/2020 09:10, Thomas Monjalon wrote:
> Anyway I think it deserves a comment in the release notes (API section).

agreed

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH] stack: remove experimental tag from API
  2020-05-28  8:10   ` Thomas Monjalon
  2020-05-28  8:22     ` Ray Kinsella
@ 2020-05-28 14:18     ` Eads, Gage
  2020-05-28 14:33       ` Bruce Richardson
  1 sibling, 1 reply; 13+ messages in thread
From: Eads, Gage @ 2020-05-28 14:18 UTC (permalink / raw)
  To: Thomas Monjalon, Ray Kinsella
  Cc: dev, david.marchand, nhorman, phil.yang, honnappa.nagarahalli,
	olivier.matz



> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Thursday, May 28, 2020 3:11 AM
> To: Eads, Gage <gage.eads@intel.com>; Ray Kinsella <mdr@ashroe.eu>
> Cc: dev@dpdk.org; david.marchand@redhat.com; nhorman@tuxdriver.com;
> phil.yang@arm.com; honnappa.nagarahalli@arm.com;
> olivier.matz@6wind.com
> Subject: Re: [PATCH] stack: remove experimental tag from API
> 
> 28/05/2020 07:46, Ray Kinsella:
> > Hi Gage,
> >
> > Do you have any idea.
> > If the change from experimental to stable symbol is likely to break anyone's
> application?
> > (are folks actively using the api with shared libraries)

Good question. I don't have a good sense of the active users, so I'd rather play it safe.

> >
> > If so, you _may_ consider offering a temporary alias to experimental until the
> v21 is declared at 20.11.
> > This is entirely at your discretion, see
> > https://doc.dpdk.org/guides/contributing/abi_versioning.html (4.3.1.4)
> 
> Or we can wait 20.11.
> 

That works. I have no urgency to get this into 20.08 in particular.

> Anyway I think it deserves a comment in the release notes (API section).
>  

Ok, if there are no objections then I'll re-submit this patchset in a few months and include a release notes comment.

Thanks,
Gage

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH] stack: remove experimental tag from API
  2020-05-28 14:18     ` Eads, Gage
@ 2020-05-28 14:33       ` Bruce Richardson
  0 siblings, 0 replies; 13+ messages in thread
From: Bruce Richardson @ 2020-05-28 14:33 UTC (permalink / raw)
  To: Eads, Gage
  Cc: Thomas Monjalon, Ray Kinsella, dev, david.marchand, nhorman,
	phil.yang, honnappa.nagarahalli, olivier.matz

On Thu, May 28, 2020 at 02:18:32PM +0000, Eads, Gage wrote:
> 
> 
> > -----Original Message-----
> > From: Thomas Monjalon <thomas@monjalon.net>
> > Sent: Thursday, May 28, 2020 3:11 AM
> > To: Eads, Gage <gage.eads@intel.com>; Ray Kinsella <mdr@ashroe.eu>
> > Cc: dev@dpdk.org; david.marchand@redhat.com; nhorman@tuxdriver.com;
> > phil.yang@arm.com; honnappa.nagarahalli@arm.com;
> > olivier.matz@6wind.com
> > Subject: Re: [PATCH] stack: remove experimental tag from API
> > 
> > 28/05/2020 07:46, Ray Kinsella:
> > > Hi Gage,
> > >
> > > Do you have any idea.
> > > If the change from experimental to stable symbol is likely to break anyone's
> > application?
> > > (are folks actively using the api with shared libraries)
> 
> Good question. I don't have a good sense of the active users, so I'd rather play it safe.
> 
> > >
> > > If so, you _may_ consider offering a temporary alias to experimental until the
> > v21 is declared at 20.11.
> > > This is entirely at your discretion, see
> > > https://doc.dpdk.org/guides/contributing/abi_versioning.html (4.3.1.4)
> > 
> > Or we can wait 20.11.
> > 
> 
> That works. I have no urgency to get this into 20.08 in particular.
> 
> > Anyway I think it deserves a comment in the release notes (API section).
> >  
> 
> Ok, if there are no objections then I'll re-submit this patchset in a few months and include a release notes comment.
> 
Or just resubmit with a 20.11 tag on it, and then mark it as "deferred" in
patchwork, so it pops up automatically for disposition again at the end of
the 20.08 cycle?

/Bruce

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [20.11] [PATCH v2] stack: remove experimental tag from API
  2020-05-28  1:04 [dpdk-dev] [PATCH] stack: remove experimental tag from API Gage Eads
  2020-05-28  5:46 ` Ray Kinsella
@ 2020-05-28 15:04 ` Gage Eads
  2020-05-28 15:29   ` Thomas Monjalon
  2020-09-30 18:49   ` David Marchand
  2020-09-30 21:39 ` [dpdk-dev] [PATCH] " Gage Eads
  2 siblings, 2 replies; 13+ messages in thread
From: Gage Eads @ 2020-05-28 15:04 UTC (permalink / raw)
  To: dev; +Cc: thomas, david.marchand, mdr, nhorman, phil.yang, honnappa.nagarahalli

The stack library was first released in 19.05, and its interfaces have been
stable since their initial introduction. This commit promotes the full
interface to stable, starting with the 20.11 major version.

Signed-off-by: Gage Eads <gage.eads@intel.com>
---
 doc/guides/rel_notes/release_20_11.rst |  3 +++
 lib/librte_stack/rte_stack.h           | 29 -----------------------------
 lib/librte_stack/rte_stack_lf.h        |  2 --
 lib/librte_stack/rte_stack_std.h       |  3 ---
 lib/librte_stack/rte_stack_version.map |  2 +-
 5 files changed, 4 insertions(+), 35 deletions(-)

v2:
- Added 20.11 tag, will set patch status to 'Deferred' so it is skipped
  for the 20.08 development period.
- Added release notes announcement. release_20_11.rst doesn't exist yet,
  so I made the change to release_20_08.rst then edited the filename
  directly in the patch. This will not apply cleanly.
- Changed rte_stack_version.map version to DPDK_21.

diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
index 39064afbe..4eaf4f17d 100644
--- a/doc/guides/rel_notes/release_20_11.rst
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -101,6 +101,9 @@ ABI Changes
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* stack: the experimental tag has been dropped from the stack library, and its
+  interfaces are considered stable as of DPDK 20.11.
+
 * No ABI change that would break compatibility with 19.11.
 
 
diff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h
index 27ddb199e..343dd019a 100644
--- a/lib/librte_stack/rte_stack.h
+++ b/lib/librte_stack/rte_stack.h
@@ -4,7 +4,6 @@
 
 /**
  * @file rte_stack.h
- * @b EXPERIMENTAL: this API may change without prior notice
  *
  * RTE Stack
  *
@@ -98,9 +97,6 @@ struct rte_stack {
 #include "rte_stack_lf.h"
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Push several objects on the stack (MT-safe).
  *
  * @param s
@@ -112,7 +108,6 @@ struct rte_stack {
  * @return
  *   Actual number of objects pushed (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
 {
@@ -126,9 +121,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Pop several objects from the stack (MT-safe).
  *
  * @param s
@@ -140,7 +132,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
  * @return
  *   Actual number of objects popped (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 {
@@ -154,9 +145,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Return the number of used entries in a stack.
  *
  * @param s
@@ -164,7 +152,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
  * @return
  *   The number of used entries in the stack.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_count(struct rte_stack *s)
 {
@@ -177,9 +164,6 @@ rte_stack_count(struct rte_stack *s)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Return the number of free entries in a stack.
  *
  * @param s
@@ -187,7 +171,6 @@ rte_stack_count(struct rte_stack *s)
  * @return
  *   The number of free entries in the stack.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_free_count(struct rte_stack *s)
 {
@@ -197,9 +180,6 @@ rte_stack_free_count(struct rte_stack *s)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Create a new stack named *name* in memory.
  *
  * This function uses ``memzone_reserve()`` to allocate memory for a stack of
@@ -226,28 +206,20 @@ rte_stack_free_count(struct rte_stack *s)
  *    - ENOMEM - insufficient memory to create the stack
  *    - ENAMETOOLONG - name size exceeds RTE_STACK_NAMESIZE
  */
-__rte_experimental
 struct rte_stack *
 rte_stack_create(const char *name, unsigned int count, int socket_id,
 		 uint32_t flags);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Free all memory used by the stack.
  *
  * @param s
  *   Stack to free
  */
-__rte_experimental
 void
 rte_stack_free(struct rte_stack *s);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Lookup a stack by its name.
  *
  * @param name
@@ -258,7 +230,6 @@ rte_stack_free(struct rte_stack *s);
  *    - ENOENT - Stack with name *name* not found.
  *    - EINVAL - *name* pointer is NULL.
  */
-__rte_experimental
 struct rte_stack *
 rte_stack_lookup(const char *name);
 
diff --git a/lib/librte_stack/rte_stack_lf.h b/lib/librte_stack/rte_stack_lf.h
index e67630c27..eb106e64e 100644
--- a/lib/librte_stack/rte_stack_lf.h
+++ b/lib/librte_stack/rte_stack_lf.h
@@ -27,7 +27,6 @@
  * @return
  *   Actual number of objects enqueued.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_lf_push(struct rte_stack *s,
 		    void * const *obj_table,
@@ -66,7 +65,6 @@ __rte_stack_lf_push(struct rte_stack *s,
  * @return
  *   - Actual number of objects popped.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_lf_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 {
diff --git a/lib/librte_stack/rte_stack_std.h b/lib/librte_stack/rte_stack_std.h
index 7142cbf8e..ae28add5c 100644
--- a/lib/librte_stack/rte_stack_std.h
+++ b/lib/librte_stack/rte_stack_std.h
@@ -19,7 +19,6 @@
  * @return
  *   Actual number of objects pushed (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
 		     unsigned int n)
@@ -59,7 +58,6 @@ __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
  * @return
  *   Actual number of objects popped (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 {
@@ -94,7 +92,6 @@ __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
  * @return
  *   The number of used entries in the stack.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_std_count(struct rte_stack *s)
 {
diff --git a/lib/librte_stack/rte_stack_version.map b/lib/librte_stack/rte_stack_version.map
index 6662679c3..8c4ca0245 100644
--- a/lib/librte_stack/rte_stack_version.map
+++ b/lib/librte_stack/rte_stack_version.map
@@ -1,4 +1,4 @@
-EXPERIMENTAL {
+DPDK_21 {
 	global:
 
 	rte_stack_create;
-- 
2.13.6


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [20.11] [PATCH v2] stack: remove experimental tag from API
  2020-05-28 15:04 ` [dpdk-dev] [20.11] [PATCH v2] " Gage Eads
@ 2020-05-28 15:29   ` Thomas Monjalon
  2020-09-30 18:49   ` David Marchand
  1 sibling, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2020-05-28 15:29 UTC (permalink / raw)
  To: Gage Eads
  Cc: dev, david.marchand, mdr, nhorman, phil.yang, honnappa.nagarahalli

28/05/2020 17:04, Gage Eads:
> The stack library was first released in 19.05, and its interfaces have been
> stable since their initial introduction. This commit promotes the full
> interface to stable, starting with the 20.11 major version.
> 
> Signed-off-by: Gage Eads <gage.eads@intel.com>
> ---
>  doc/guides/rel_notes/release_20_11.rst |  3 +++
>  lib/librte_stack/rte_stack.h           | 29 -----------------------------
>  lib/librte_stack/rte_stack_lf.h        |  2 --
>  lib/librte_stack/rte_stack_std.h       |  3 ---
>  lib/librte_stack/rte_stack_version.map |  2 +-
>  5 files changed, 4 insertions(+), 35 deletions(-)
> 
> v2:
> - Added 20.11 tag, will set patch status to 'Deferred' so it is skipped
>   for the 20.08 development period.
> - Added release notes announcement. release_20_11.rst doesn't exist yet,
>   so I made the change to release_20_08.rst then edited the filename
>   directly in the patch. This will not apply cleanly.
> - Changed rte_stack_version.map version to DPDK_21.

I think you did it right.




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [20.11] [PATCH v2] stack: remove experimental tag from API
  2020-05-28 15:04 ` [dpdk-dev] [20.11] [PATCH v2] " Gage Eads
  2020-05-28 15:29   ` Thomas Monjalon
@ 2020-09-30 18:49   ` David Marchand
  1 sibling, 0 replies; 13+ messages in thread
From: David Marchand @ 2020-09-30 18:49 UTC (permalink / raw)
  To: Gage Eads
  Cc: dev, Thomas Monjalon, Ray Kinsella, Neil Horman, Phil Yang,
	Honnappa Nagarahalli

On Thu, May 28, 2020 at 5:06 PM Gage Eads <gage.eads@intel.com> wrote:
>
> The stack library was first released in 19.05, and its interfaces have been
> stable since their initial introduction. This commit promotes the full
> interface to stable, starting with the 20.11 major version.
>
> Signed-off-by: Gage Eads <gage.eads@intel.com>
> ---
>  doc/guides/rel_notes/release_20_11.rst |  3 +++
>  lib/librte_stack/rte_stack.h           | 29 -----------------------------
>  lib/librte_stack/rte_stack_lf.h        |  2 --
>  lib/librte_stack/rte_stack_std.h       |  3 ---
>  lib/librte_stack/rte_stack_version.map |  2 +-
>  5 files changed, 4 insertions(+), 35 deletions(-)
>
> v2:
> - Added 20.11 tag, will set patch status to 'Deferred' so it is skipped
>   for the 20.08 development period.
> - Added release notes announcement. release_20_11.rst doesn't exist yet,
>   so I made the change to release_20_08.rst then edited the filename
>   directly in the patch. This will not apply cleanly.
> - Changed rte_stack_version.map version to DPDK_21.
>
> diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
> index 39064afbe..4eaf4f17d 100644
> --- a/doc/guides/rel_notes/release_20_11.rst
> +++ b/doc/guides/rel_notes/release_20_11.rst
> @@ -101,6 +101,9 @@ ABI Changes
>     Also, make sure to start the actual text at the margin.
>     =========================================================
>
> +* stack: the experimental tag has been dropped from the stack library, and its
> +  interfaces are considered stable as of DPDK 20.11.
> +

I would move this to the API changes section, as proposed by Thomas before.

>  * No ABI change that would break compatibility with 19.11.
>
>
> diff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h
> index 27ddb199e..343dd019a 100644
> --- a/lib/librte_stack/rte_stack.h
> +++ b/lib/librte_stack/rte_stack.h
> @@ -4,7 +4,6 @@
>
>  /**
>   * @file rte_stack.h
> - * @b EXPERIMENTAL: this API may change without prior notice

There is a little conflict here that git-pw/git-am seems to silently skip...


>   *
>   * RTE Stack
>   *
> @@ -98,9 +97,6 @@ struct rte_stack {
>  #include "rte_stack_lf.h"
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Push several objects on the stack (MT-safe).
>   *
>   * @param s
> @@ -112,7 +108,6 @@ struct rte_stack {
>   * @return
>   *   Actual number of objects pushed (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
>  {
> @@ -126,9 +121,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
>  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Pop several objects from the stack (MT-safe).
>   *
>   * @param s
> @@ -140,7 +132,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
>   * @return
>   *   Actual number of objects popped (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  {
> @@ -154,9 +145,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Return the number of used entries in a stack.
>   *
>   * @param s
> @@ -164,7 +152,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>   * @return
>   *   The number of used entries in the stack.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_count(struct rte_stack *s)
>  {
> @@ -177,9 +164,6 @@ rte_stack_count(struct rte_stack *s)
>  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Return the number of free entries in a stack.
>   *
>   * @param s
> @@ -187,7 +171,6 @@ rte_stack_count(struct rte_stack *s)
>   * @return
>   *   The number of free entries in the stack.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_free_count(struct rte_stack *s)
>  {
> @@ -197,9 +180,6 @@ rte_stack_free_count(struct rte_stack *s)
>  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Create a new stack named *name* in memory.
>   *
>   * This function uses ``memzone_reserve()`` to allocate memory for a stack of
> @@ -226,28 +206,20 @@ rte_stack_free_count(struct rte_stack *s)
>   *    - ENOMEM - insufficient memory to create the stack
>   *    - ENAMETOOLONG - name size exceeds RTE_STACK_NAMESIZE
>   */
> -__rte_experimental
>  struct rte_stack *
>  rte_stack_create(const char *name, unsigned int count, int socket_id,
>                  uint32_t flags);
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Free all memory used by the stack.
>   *
>   * @param s
>   *   Stack to free
>   */
> -__rte_experimental
>  void
>  rte_stack_free(struct rte_stack *s);
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Lookup a stack by its name.
>   *
>   * @param name
> @@ -258,7 +230,6 @@ rte_stack_free(struct rte_stack *s);
>   *    - ENOENT - Stack with name *name* not found.
>   *    - EINVAL - *name* pointer is NULL.
>   */
> -__rte_experimental
>  struct rte_stack *
>  rte_stack_lookup(const char *name);
>
> diff --git a/lib/librte_stack/rte_stack_lf.h b/lib/librte_stack/rte_stack_lf.h
> index e67630c27..eb106e64e 100644
> --- a/lib/librte_stack/rte_stack_lf.h
> +++ b/lib/librte_stack/rte_stack_lf.h
> @@ -27,7 +27,6 @@
>   * @return
>   *   Actual number of objects enqueued.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_lf_push(struct rte_stack *s,
>                     void * const *obj_table,
> @@ -66,7 +65,6 @@ __rte_stack_lf_push(struct rte_stack *s,
>   * @return
>   *   - Actual number of objects popped.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_lf_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  {
> diff --git a/lib/librte_stack/rte_stack_std.h b/lib/librte_stack/rte_stack_std.h
> index 7142cbf8e..ae28add5c 100644
> --- a/lib/librte_stack/rte_stack_std.h
> +++ b/lib/librte_stack/rte_stack_std.h
> @@ -19,7 +19,6 @@
>   * @return
>   *   Actual number of objects pushed (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
>                      unsigned int n)
> @@ -59,7 +58,6 @@ __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
>   * @return
>   *   Actual number of objects popped (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  {
> @@ -94,7 +92,6 @@ __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>   * @return
>   *   The number of used entries in the stack.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_std_count(struct rte_stack *s)
>  {
> diff --git a/lib/librte_stack/rte_stack_version.map b/lib/librte_stack/rte_stack_version.map
> index 6662679c3..8c4ca0245 100644
> --- a/lib/librte_stack/rte_stack_version.map
> +++ b/lib/librte_stack/rte_stack_version.map
> @@ -1,4 +1,4 @@
> -EXPERIMENTAL {
> +DPDK_21 {
>         global:
>
>         rte_stack_create;
> --
> 2.13.6
>

Otherwise, lgtm.

Acked-by: David Marchand <david.marchand@redhat.com>


-- 
David Marchand


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [PATCH] stack: remove experimental tag from API
  2020-05-28  1:04 [dpdk-dev] [PATCH] stack: remove experimental tag from API Gage Eads
  2020-05-28  5:46 ` Ray Kinsella
  2020-05-28 15:04 ` [dpdk-dev] [20.11] [PATCH v2] " Gage Eads
@ 2020-09-30 21:39 ` Gage Eads
  2020-10-05  9:07   ` Kinsella, Ray
  2020-10-05 12:57   ` David Marchand
  2 siblings, 2 replies; 13+ messages in thread
From: Gage Eads @ 2020-09-30 21:39 UTC (permalink / raw)
  To: dev; +Cc: thomas, david.marchand, mdr, nhorman, phil.yang, honnappa.nagarahalli

The stack library was first released in 19.05, and its interfaces have been
stable since their initial introduction. This commit promotes the full
interface to stable, starting with the 20.11 major version.

Signed-off-by: Gage Eads <gage.eads@intel.com>
Acked-by: David Marchand <david.marchand@redhat.com>
---
 doc/guides/rel_notes/release_20_11.rst |  3 +++
 lib/librte_stack/rte_stack.h           | 32 --------------------------------
 lib/librte_stack/rte_stack_lf.h        |  2 --
 lib/librte_stack/rte_stack_std.h       |  3 ---
 lib/librte_stack/rte_stack_version.map |  2 +-
 5 files changed, 4 insertions(+), 38 deletions(-)

v3:
- Rebase on top of main.
- Move release notes comment to the API changes section.

v2:
- Added 20.11 tag, will set patch status to 'Deferred' so it is skipped
  for the 20.08 development period.
- Added release notes announcement. release_20_11.rst doesn't exist yet,
  so I made the change to release_20_08.rst then edited the filename
  directly in the patch. This will not apply cleanly.
- Changed rte_stack_version.map version to DPDK_21.

diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
index 4eb3224a7..0b8cdd920 100644
--- a/doc/guides/rel_notes/release_20_11.rst
+++ b/doc/guides/rel_notes/release_20_11.rst
@@ -170,6 +170,9 @@ API Changes
   and the function ``rte_rawdev_queue_conf_get()``
   from ``void`` to ``int`` allowing the return of error codes from drivers.
 
+* stack: the experimental tag has been dropped from the stack library, and its
+  interfaces are considered stable as of DPDK 20.11.
+
 * bpf: ``RTE_BPF_XTYPE_NUM`` has been dropped from ``rte_bpf_xtype``.
 
 
diff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h
index abf642076..395b9ef83 100644
--- a/lib/librte_stack/rte_stack.h
+++ b/lib/librte_stack/rte_stack.h
@@ -7,10 +7,6 @@
  *
  * RTE Stack.
  *
- * @warning
- * @b EXPERIMENTAL:
- * All functions in this file may be changed or removed without prior notice.
- *
  * librte_stack provides an API for configuration and use of a bounded stack of
  * pointers. Push and pop operations are MT-safe, allowing concurrent access,
  * and the interface supports pushing and popping multiple pointers at a time.
@@ -101,9 +97,6 @@ struct rte_stack {
 #include "rte_stack_lf.h"
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Push several objects on the stack (MT-safe).
  *
  * @param s
@@ -115,7 +108,6 @@ struct rte_stack {
  * @return
  *   Actual number of objects pushed (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
 {
@@ -129,9 +121,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Pop several objects from the stack (MT-safe).
  *
  * @param s
@@ -143,7 +132,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
  * @return
  *   Actual number of objects popped (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 {
@@ -157,9 +145,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Return the number of used entries in a stack.
  *
  * @param s
@@ -167,7 +152,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
  * @return
  *   The number of used entries in the stack.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_count(struct rte_stack *s)
 {
@@ -180,9 +164,6 @@ rte_stack_count(struct rte_stack *s)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Return the number of free entries in a stack.
  *
  * @param s
@@ -190,7 +171,6 @@ rte_stack_count(struct rte_stack *s)
  * @return
  *   The number of free entries in the stack.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 rte_stack_free_count(struct rte_stack *s)
 {
@@ -200,9 +180,6 @@ rte_stack_free_count(struct rte_stack *s)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Create a new stack named *name* in memory.
  *
  * This function uses ``memzone_reserve()`` to allocate memory for a stack of
@@ -229,28 +206,20 @@ rte_stack_free_count(struct rte_stack *s)
  *    - ENOMEM - insufficient memory to create the stack
  *    - ENAMETOOLONG - name size exceeds RTE_STACK_NAMESIZE
  */
-__rte_experimental
 struct rte_stack *
 rte_stack_create(const char *name, unsigned int count, int socket_id,
 		 uint32_t flags);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Free all memory used by the stack.
  *
  * @param s
  *   Stack to free
  */
-__rte_experimental
 void
 rte_stack_free(struct rte_stack *s);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Lookup a stack by its name.
  *
  * @param name
@@ -261,7 +230,6 @@ rte_stack_free(struct rte_stack *s);
  *    - ENOENT - Stack with name *name* not found.
  *    - EINVAL - *name* pointer is NULL.
  */
-__rte_experimental
 struct rte_stack *
 rte_stack_lookup(const char *name);
 
diff --git a/lib/librte_stack/rte_stack_lf.h b/lib/librte_stack/rte_stack_lf.h
index e67630c27..eb106e64e 100644
--- a/lib/librte_stack/rte_stack_lf.h
+++ b/lib/librte_stack/rte_stack_lf.h
@@ -27,7 +27,6 @@
  * @return
  *   Actual number of objects enqueued.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_lf_push(struct rte_stack *s,
 		    void * const *obj_table,
@@ -66,7 +65,6 @@ __rte_stack_lf_push(struct rte_stack *s,
  * @return
  *   - Actual number of objects popped.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_lf_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 {
diff --git a/lib/librte_stack/rte_stack_std.h b/lib/librte_stack/rte_stack_std.h
index 7142cbf8e..ae28add5c 100644
--- a/lib/librte_stack/rte_stack_std.h
+++ b/lib/librte_stack/rte_stack_std.h
@@ -19,7 +19,6 @@
  * @return
  *   Actual number of objects pushed (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
 		     unsigned int n)
@@ -59,7 +58,6 @@ __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
  * @return
  *   Actual number of objects popped (either 0 or *n*).
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
 {
@@ -94,7 +92,6 @@ __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
  * @return
  *   The number of used entries in the stack.
  */
-__rte_experimental
 static __rte_always_inline unsigned int
 __rte_stack_std_count(struct rte_stack *s)
 {
diff --git a/lib/librte_stack/rte_stack_version.map b/lib/librte_stack/rte_stack_version.map
index 6662679c3..8c4ca0245 100644
--- a/lib/librte_stack/rte_stack_version.map
+++ b/lib/librte_stack/rte_stack_version.map
@@ -1,4 +1,4 @@
-EXPERIMENTAL {
+DPDK_21 {
 	global:
 
 	rte_stack_create;
-- 
2.13.6


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH] stack: remove experimental tag from API
  2020-09-30 21:39 ` [dpdk-dev] [PATCH] " Gage Eads
@ 2020-10-05  9:07   ` Kinsella, Ray
  2020-10-05  9:53     ` Kinsella, Ray
  2020-10-05 12:57   ` David Marchand
  1 sibling, 1 reply; 13+ messages in thread
From: Kinsella, Ray @ 2020-10-05  9:07 UTC (permalink / raw)
  To: Gage Eads, dev
  Cc: thomas, david.marchand, nhorman, phil.yang, honnappa.nagarahalli

A nit and some questions below, thanks Ray K.

On 30/09/2020 22:39, Gage Eads wrote:
> The stack library was first released in 19.05, and its interfaces have been
> stable since their initial introduction. This commit promotes the full
> interface to stable, starting with the 20.11 major version.
> 
> Signed-off-by: Gage Eads <gage.eads@intel.com>
> Acked-by: David Marchand <david.marchand@redhat.com>
> ---
>  doc/guides/rel_notes/release_20_11.rst |  3 +++
>  lib/librte_stack/rte_stack.h           | 32 --------------------------------
>  lib/librte_stack/rte_stack_lf.h        |  2 --
>  lib/librte_stack/rte_stack_std.h       |  3 ---
>  lib/librte_stack/rte_stack_version.map |  2 +-
>  5 files changed, 4 insertions(+), 38 deletions(-)
NIT: You are missing the v3 in the subject line, doesn't require a fix. 

> 
> v3:
> - Rebase on top of main.
> - Move release notes comment to the API changes section.
> 
> v2:
> - Added 20.11 tag, will set patch status to 'Deferred' so it is skipped
>   for the 20.08 development period.
> - Added release notes announcement. release_20_11.rst doesn't exist yet,
>   so I made the change to release_20_08.rst then edited the filename
>   directly in the patch. This will not apply cleanly.
> - Changed rte_stack_version.map version to DPDK_21.
> 
> diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
> index 4eb3224a7..0b8cdd920 100644
> --- a/doc/guides/rel_notes/release_20_11.rst
> +++ b/doc/guides/rel_notes/release_20_11.rst
> @@ -170,6 +170,9 @@ API Changes
>    and the function ``rte_rawdev_queue_conf_get()``
>    from ``void`` to ``int`` allowing the return of error codes from drivers.
>  
> +* stack: the experimental tag has been dropped from the stack library, and its
> +  interfaces are considered stable as of DPDK 20.11.
> +
>  * bpf: ``RTE_BPF_XTYPE_NUM`` has been dropped from ``rte_bpf_xtype``.
>  
>  
> diff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h
> index abf642076..395b9ef83 100644
> --- a/lib/librte_stack/rte_stack.h
> +++ b/lib/librte_stack/rte_stack.h
> @@ -7,10 +7,6 @@
>   *
>   * RTE Stack.
>   *
> - * @warning
> - * @b EXPERIMENTAL:
> - * All functions in this file may be changed or removed without prior notice.
> - *
>   * librte_stack provides an API for configuration and use of a bounded stack of
>   * pointers. Push and pop operations are MT-safe, allowing concurrent access,
>   * and the interface supports pushing and popping multiple pointers at a time.
> @@ -101,9 +97,6 @@ struct rte_stack {
>  #include "rte_stack_lf.h"
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Push several objects on the stack (MT-safe).
>   *
>   * @param s
> @@ -115,7 +108,6 @@ struct rte_stack {
>   * @return
>   *   Actual number of objects pushed (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
>  {
> @@ -129,9 +121,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
>  }
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Pop several objects from the stack (MT-safe).
>   *
>   * @param s
> @@ -143,7 +132,6 @@ rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)
>   * @return
>   *   Actual number of objects popped (either 0 or *n*).
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  {
> @@ -157,9 +145,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  }
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Return the number of used entries in a stack.
>   *
>   * @param s
> @@ -167,7 +152,6 @@ rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>   * @return
>   *   The number of used entries in the stack.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_count(struct rte_stack *s)
>  {
> @@ -180,9 +164,6 @@ rte_stack_count(struct rte_stack *s)
>  }
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Return the number of free entries in a stack.
>   *
>   * @param s
> @@ -190,7 +171,6 @@ rte_stack_count(struct rte_stack *s)
>   * @return
>   *   The number of free entries in the stack.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  rte_stack_free_count(struct rte_stack *s)
>  {
> @@ -200,9 +180,6 @@ rte_stack_free_count(struct rte_stack *s)
>  }
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Create a new stack named *name* in memory.
>   *
>   * This function uses ``memzone_reserve()`` to allocate memory for a stack of
> @@ -229,28 +206,20 @@ rte_stack_free_count(struct rte_stack *s)
>   *    - ENOMEM - insufficient memory to create the stack
>   *    - ENAMETOOLONG - name size exceeds RTE_STACK_NAMESIZE
>   */
> -__rte_experimental
>  struct rte_stack *
>  rte_stack_create(const char *name, unsigned int count, int socket_id,
>  		 uint32_t flags);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Free all memory used by the stack.
>   *
>   * @param s
>   *   Stack to free
>   */
> -__rte_experimental
>  void
>  rte_stack_free(struct rte_stack *s);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Lookup a stack by its name.
>   *
>   * @param name
> @@ -261,7 +230,6 @@ rte_stack_free(struct rte_stack *s);
>   *    - ENOENT - Stack with name *name* not found.
>   *    - EINVAL - *name* pointer is NULL.
>   */
> -__rte_experimental
>  struct rte_stack *
>  rte_stack_lookup(const char *name);
>  
> diff --git a/lib/librte_stack/rte_stack_lf.h b/lib/librte_stack/rte_stack_lf.h
> index e67630c27..eb106e64e 100644
> --- a/lib/librte_stack/rte_stack_lf.h
> +++ b/lib/librte_stack/rte_stack_lf.h
> @@ -27,7 +27,6 @@
>   * @return
>   *   Actual number of objects enqueued.
>   */
> -__rte_experimental

This looks like an internal function, should it be __rte_internal?

>  static __rte_always_inline unsigned int
>  __rte_stack_lf_push(struct rte_stack *s,
>  		    void * const *obj_table,
> @@ -66,7 +65,6 @@ __rte_stack_lf_push(struct rte_stack *s,
>   * @return
>   *   - Actual number of objects popped.
>   */
> -__rte_experimental

This looks like an internal function, should it be __rte_internal?

>  static __rte_always_inline unsigned int
>  __rte_stack_lf_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  {
> diff --git a/lib/librte_stack/rte_stack_std.h b/lib/librte_stack/rte_stack_std.h
> index 7142cbf8e..ae28add5c 100644
> --- a/lib/librte_stack/rte_stack_std.h
> +++ b/lib/librte_stack/rte_stack_std.h
> @@ -19,7 +19,6 @@
>   * @return
>   *   Actual number of objects pushed (either 0 or *n*).
>   */
> -__rte_experimental

This looks like an internal function, should it be __rte_internal?

>  static __rte_always_inline unsigned int
>  __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
>  		     unsigned int n)
> @@ -59,7 +58,6 @@ __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
>   * @return
>   *   Actual number of objects popped (either 0 or *n*).
>   */
> -__rte_experimental

This looks like an internal function, should it be __rte_internal?

>  static __rte_always_inline unsigned int
>  __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>  {
> @@ -94,7 +92,6 @@ __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>   * @return
>   *   The number of used entries in the stack.
>   */
> -__rte_experimental
>  static __rte_always_inline unsigned int
>  __rte_stack_std_count(struct rte_stack *s)
>  {
> diff --git a/lib/librte_stack/rte_stack_version.map b/lib/librte_stack/rte_stack_version.map
> index 6662679c3..8c4ca0245 100644
> --- a/lib/librte_stack/rte_stack_version.map
> +++ b/lib/librte_stack/rte_stack_version.map
> @@ -1,4 +1,4 @@
> -EXPERIMENTAL {
> +DPDK_21 {
>  	global:
>  
>  	rte_stack_create;
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH] stack: remove experimental tag from API
  2020-10-05  9:07   ` Kinsella, Ray
@ 2020-10-05  9:53     ` Kinsella, Ray
  0 siblings, 0 replies; 13+ messages in thread
From: Kinsella, Ray @ 2020-10-05  9:53 UTC (permalink / raw)
  To: Gage Eads, dev
  Cc: thomas, david.marchand, nhorman, phil.yang, honnappa.nagarahalli



On 05/10/2020 10:07, Kinsella, Ray wrote:
> A nit and some questions below, thanks Ray K.
> 
> On 30/09/2020 22:39, Gage Eads wrote:
>> The stack library was first released in 19.05, and its interfaces have been
>> stable since their initial introduction. This commit promotes the full
>> interface to stable, starting with the 20.11 major version.
>>
>> Signed-off-by: Gage Eads <gage.eads@intel.com>
>> Acked-by: David Marchand <david.marchand@redhat.com>
>> ---
>>  doc/guides/rel_notes/release_20_11.rst |  3 +++
>>  lib/librte_stack/rte_stack.h           | 32 --------------------------------
>>  lib/librte_stack/rte_stack_lf.h        |  2 --
>>  lib/librte_stack/rte_stack_std.h       |  3 ---
>>  lib/librte_stack/rte_stack_version.map |  2 +-
>>  5 files changed, 4 insertions(+), 38 deletions(-)
> NIT: You are missing the v3 in the subject line, doesn't require a fix. 
> 
[SNIP]

So after chatting with David, it looks like there is no _nice_ way to indicate that 
some inlines are "internal" while others are "public". 
Something to look at in future maybe.

>>  
>> diff --git a/lib/librte_stack/rte_stack_lf.h b/lib/librte_stack/rte_stack_lf.h
>> index e67630c27..eb106e64e 100644
>> --- a/lib/librte_stack/rte_stack_lf.h
>> +++ b/lib/librte_stack/rte_stack_lf.h
>> @@ -27,7 +27,6 @@
>>   * @return
>>   *   Actual number of objects enqueued.
>>   */
>> -__rte_experimental
> 
> This looks like an internal function, should it be __rte_internal?
> 
>>  static __rte_always_inline unsigned int
>>  __rte_stack_lf_push(struct rte_stack *s,
>>  		    void * const *obj_table,
>> @@ -66,7 +65,6 @@ __rte_stack_lf_push(struct rte_stack *s,
>>   * @return
>>   *   - Actual number of objects popped.
>>   */
>> -__rte_experimental
> 
> This looks like an internal function, should it be __rte_internal?
> 
>>  static __rte_always_inline unsigned int
>>  __rte_stack_lf_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>>  {
>> diff --git a/lib/librte_stack/rte_stack_std.h b/lib/librte_stack/rte_stack_std.h
>> index 7142cbf8e..ae28add5c 100644
>> --- a/lib/librte_stack/rte_stack_std.h
>> +++ b/lib/librte_stack/rte_stack_std.h
>> @@ -19,7 +19,6 @@
>>   * @return
>>   *   Actual number of objects pushed (either 0 or *n*).
>>   */
>> -__rte_experimental
> 
> This looks like an internal function, should it be __rte_internal?
> 
>>  static __rte_always_inline unsigned int
>>  __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
>>  		     unsigned int n)
>> @@ -59,7 +58,6 @@ __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,
>>   * @return
>>   *   Actual number of objects popped (either 0 or *n*).
>>   */
>> -__rte_experimental
> 
> This looks like an internal function, should it be __rte_internal?
> 
>>  static __rte_always_inline unsigned int
>>  __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>>  {
>> @@ -94,7 +92,6 @@ __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)
>>   * @return
>>   *   The number of used entries in the stack.
>>   */
>> -__rte_experimental
>>  static __rte_always_inline unsigned int
>>  __rte_stack_std_count(struct rte_stack *s)
>>  {
>> diff --git a/lib/librte_stack/rte_stack_version.map b/lib/librte_stack/rte_stack_version.map
>> index 6662679c3..8c4ca0245 100644
>> --- a/lib/librte_stack/rte_stack_version.map
>> +++ b/lib/librte_stack/rte_stack_version.map
>> @@ -1,4 +1,4 @@
>> -EXPERIMENTAL {
>> +DPDK_21 {
>>  	global:
>>  
>>  	rte_stack_create;
>>

Acked-by: Ray Kinsella <mdr@ashroe.eu>




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH] stack: remove experimental tag from API
  2020-09-30 21:39 ` [dpdk-dev] [PATCH] " Gage Eads
  2020-10-05  9:07   ` Kinsella, Ray
@ 2020-10-05 12:57   ` David Marchand
  1 sibling, 0 replies; 13+ messages in thread
From: David Marchand @ 2020-10-05 12:57 UTC (permalink / raw)
  To: Gage Eads
  Cc: dev, Thomas Monjalon, Ray Kinsella, Neil Horman, Phil Yang,
	Honnappa Nagarahalli

On Wed, Sep 30, 2020 at 11:38 PM Gage Eads <gage.eads@intel.com> wrote:
>
> The stack library was first released in 19.05, and its interfaces have been
> stable since their initial introduction. This commit promotes the full
> interface to stable, starting with the 20.11 major version.
>
> Signed-off-by: Gage Eads <gage.eads@intel.com>
> Acked-by: David Marchand <david.marchand@redhat.com>
Acked-by: Ray Kinsella <mdr@ashroe.eu>

Removed remaining comment in MAINTAINERS.
Applied, thanks.


-- 
David Marchand


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2020-10-05 12:57 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-28  1:04 [dpdk-dev] [PATCH] stack: remove experimental tag from API Gage Eads
2020-05-28  5:46 ` Ray Kinsella
2020-05-28  8:10   ` Thomas Monjalon
2020-05-28  8:22     ` Ray Kinsella
2020-05-28 14:18     ` Eads, Gage
2020-05-28 14:33       ` Bruce Richardson
2020-05-28 15:04 ` [dpdk-dev] [20.11] [PATCH v2] " Gage Eads
2020-05-28 15:29   ` Thomas Monjalon
2020-09-30 18:49   ` David Marchand
2020-09-30 21:39 ` [dpdk-dev] [PATCH] " Gage Eads
2020-10-05  9:07   ` Kinsella, Ray
2020-10-05  9:53     ` Kinsella, Ray
2020-10-05 12:57   ` David Marchand

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git