> -----Original Message-----
> From: Stephen Hemminger <step...@networkplumber.org>
> Sent: Tuesday, August 8, 2023 12:35 PM
> To: dev@dpdk.org
> Cc: Stephen Hemminger <step...@networkplumber.org>; Honnappa
> Nagarahalli <honnappa.nagaraha...@arm.com>
> Subject: [PATCH 08/20] rcu: remove experimental from rte_rcu_qbsr
>
> These functions were added back in 2020.
> Remove experimental flag.
>
> Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>
> ---
> lib/rcu/rte_rcu_qsbr.h | 20 --------------------
> lib/rcu/version.map | 15 ++++-----------
> 2 files changed, 4 insertions(+), 31 deletions(-)
>
> diff --git a/lib/rcu/rte_rcu_qsbr.h b/lib/rcu/rte_rcu_qsbr.h index
> 87e1b55153b5..74ef41e0fac1 100644
> --- a/lib/rcu/rte_rcu_qsbr.h
> +++ b/lib/rcu/rte_rcu_qsbr.h
> @@ -10,10 +10,6 @@
> *
> * RTE Quiescent State Based Reclamation (QSBR).
> *
> - * @warning
> - * @b EXPERIMENTAL:
> - * All functions in this file may be changed or removed without prior notice.
> - *
> * Quiescent State (QS) is any point in the thread execution
> * where the thread does not hold a reference to a data structure
> * in shared memory. While using lock-less data structures, the writer @@ -
> 727,9 +723,6 @@ int rte_rcu_qsbr_dump(FILE *f, struct rte_rcu_qsbr *v);
>
> /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
> * Create a queue used to store the data structure elements that can
> * be freed later. This queue is referred to as 'defer queue'.
> *
> @@ -742,14 +735,10 @@ rte_rcu_qsbr_dump(FILE *f, struct rte_rcu_qsbr
> *v);
> * - EINVAL - NULL parameters are passed
> * - ENOMEM - Not enough memory
> */
> -__rte_experimental
> struct rte_rcu_qsbr_dq *
> rte_rcu_qsbr_dq_create(const struct rte_rcu_qsbr_dq_parameters *params);
>
> /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
> * Enqueue one resource to the defer queue and start the grace period.
> * The resource will be freed later after at least one grace period
> * is over.
> @@ -777,14 +766,10 @@ rte_rcu_qsbr_dq_create(const struct
> rte_rcu_qsbr_dq_parameters *params);
> * if the defer queue size is equal (or larger) than the
> * number of elements in the data structure.
> */
> -__rte_experimental
> int
> rte_rcu_qsbr_dq_enqueue(struct rte_rcu_qsbr_dq *dq, void *e);
>
> /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
> * Free resources from the defer queue.
> *
> * This API is multi-thread safe.
> @@ -806,15 +791,11 @@ rte_rcu_qsbr_dq_enqueue(struct rte_rcu_qsbr_dq
> *dq, void *e);
> * On error - 1 with rte_errno set to
> * - EINVAL - NULL parameters are passed
> */
> -__rte_experimental
> int
> rte_rcu_qsbr_dq_reclaim(struct rte_rcu_qsbr_dq *dq, unsigned int n,
> unsigned int *freed, unsigned int *pending, unsigned int *available);
>
> /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
> * Delete a defer queue.
> *
> * It tries to reclaim all the resources on the defer queue.
> @@ -832,7 +813,6 @@ rte_rcu_qsbr_dq_reclaim(struct rte_rcu_qsbr_dq *dq,
> unsigned int n,
> * - EAGAIN - Some of the resources have not completed at least 1 grace
> * period, try again.
> */
> -__rte_experimental
> int
> rte_rcu_qsbr_dq_delete(struct rte_rcu_qsbr_dq *dq);
>
> diff --git a/lib/rcu/version.map b/lib/rcu/version.map index
> 9218ed1f3399..982ffd59d9cd 100644
> --- a/lib/rcu/version.map
> +++ b/lib/rcu/version.map
> @@ -2,6 +2,10 @@ DPDK_24 {
> global:
>
> rte_rcu_log_type;
> + rte_rcu_qsbr_dq_create;
> + rte_rcu_qsbr_dq_delete;
> + rte_rcu_qsbr_dq_enqueue;
> + rte_rcu_qsbr_dq_reclaim;
> rte_rcu_qsbr_dump;
> rte_rcu_qsbr_get_memsize;
> rte_rcu_qsbr_init;
> @@ -11,14 +15,3 @@ DPDK_24 {
>
> local: *;
> };
> -
> -EXPERIMENTAL {
> - global:
> -
> - rte_rcu_qsbr_dq_create;
> - rte_rcu_qsbr_dq_enqueue;
> - rte_rcu_qsbr_dq_reclaim;
> - rte_rcu_qsbr_dq_delete;
> -
> - local: *;
> -};
> --
> 2.39.2