DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH 00/15] eal: mark older API's stable
@ 2023-08-09 16:42 Stephen Hemminger
  2023-08-09 16:42 ` [PATCH 01/15] eal: make bitops a stable API Stephen Hemminger
                   ` (16 more replies)
  0 siblings, 17 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:42 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

About 80 function in EAL were marked experimental
and should have been made stable by now.

Stephen Hemminger (15):
  eal: make bitops a stable API
  eal: mark rte_dev API's as stable
  eal: make rte_class API's stable
  eal: make rte_version_XXX API's stable
  eal: make rte_drand a stable API
  eal: make rte_service_lcore_may_be_active stable
  eal: make rte_devargs_reset stable
  eal: make pflock API stable
  eal: make seqcount and seqlock stable
  eal: mark rte_intr_XXX API's as stable
  eal: mark rte_atomic128_cmp_exchange as stable
  eal: make most rte_thread API's stable
  eal: mark rte_power API's stable
  eal: mark rte_eal_vfio_get_token stable
  eal: mark rte_vect simd bandwidth API as stable

 lib/eal/arm/include/rte_atomic_64.h           |   1 -
 lib/eal/include/generic/rte_atomic.h          |   1 -
 .../include/generic/rte_power_intrinsics.h    |  16 ---
 lib/eal/include/generic/rte_vect.h            |   8 --
 lib/eal/include/rte_bitmap.h                  |   8 --
 lib/eal/include/rte_bitops.h                  |  40 ------
 lib/eal/include/rte_class.h                   |   4 -
 lib/eal/include/rte_dev.h                     |  32 -----
 lib/eal/include/rte_devargs.h                 |   1 -
 lib/eal/include/rte_eal.h                     |   4 -
 lib/eal/include/rte_interrupts.h              |  28 ----
 lib/eal/include/rte_pflock.h                  |  20 ---
 lib/eal/include/rte_random.h                  |   4 -
 lib/eal/include/rte_seqcount.h                |  23 ---
 lib/eal/include/rte_seqlock.h                 |  21 ---
 lib/eal/include/rte_service.h                 |   1 -
 lib/eal/include/rte_thread.h                  |  57 --------
 lib/eal/include/rte_version.h                 |   6 -
 lib/eal/version.map                           | 132 ++++++++----------
 lib/eal/x86/include/rte_atomic_64.h           |   1 -
 20 files changed, 55 insertions(+), 353 deletions(-)

-- 
2.39.2


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

* [PATCH 01/15] eal: make bitops a stable API
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
@ 2023-08-09 16:42 ` Stephen Hemminger
  2023-08-09 17:58   ` Tyler Retzlaff
  2023-08-09 16:42 ` [PATCH 02/15] eal: mark rte_dev API's as stable Stephen Hemminger
                   ` (15 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:42 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Cristian Dumitrescu, Joyce Kong

These were added in 20.05 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_bitmap.h |  8 --------
 lib/eal/include/rte_bitops.h | 40 ------------------------------------
 2 files changed, 48 deletions(-)

diff --git a/lib/eal/include/rte_bitmap.h b/lib/eal/include/rte_bitmap.h
index 46a822768d50..ec819595624c 100644
--- a/lib/eal/include/rte_bitmap.h
+++ b/lib/eal/include/rte_bitmap.h
@@ -203,9 +203,6 @@ rte_bitmap_init(uint32_t n_bits, uint8_t *mem, uint32_t mem_size)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Bitmap clear slab overhead bits.
  *
  * @param slabs
@@ -215,7 +212,6 @@ rte_bitmap_init(uint32_t n_bits, uint8_t *mem, uint32_t mem_size)
  * @param pos
  *   The start bit position in the slabs to be cleared.
  */
-__rte_experimental
 static inline void
 __rte_bitmap_clear_slab_overhead_bits(uint64_t *slabs, uint32_t slab_size,
 				      uint32_t pos)
@@ -235,9 +231,6 @@ __rte_bitmap_clear_slab_overhead_bits(uint64_t *slabs, uint32_t slab_size,
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Bitmap initialization with all bits set
  *
  * @param n_bits
@@ -249,7 +242,6 @@ __rte_bitmap_clear_slab_overhead_bits(uint64_t *slabs, uint32_t slab_size,
  * @return
  *   Handle to bitmap instance.
  */
-__rte_experimental
 static inline struct rte_bitmap *
 rte_bitmap_init_with_all_set(uint32_t n_bits, uint8_t *mem, uint32_t mem_size)
 {
diff --git a/lib/eal/include/rte_bitops.h b/lib/eal/include/rte_bitops.h
index f50dbe43880c..41b1878841fc 100644
--- a/lib/eal/include/rte_bitops.h
+++ b/lib/eal/include/rte_bitops.h
@@ -40,9 +40,6 @@ extern "C" {
 /*------------------------ 32-bit relaxed operations ------------------------*/
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Get the target bit from a 32-bit value without memory ordering.
  *
  * @param nr
@@ -52,7 +49,6 @@ extern "C" {
  * @return
  *   The target bit.
  */
-__rte_experimental
 static inline uint32_t
 rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -63,9 +59,6 @@ rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Set the target bit in a 32-bit value to 1 without memory ordering.
  *
  * @param nr
@@ -73,7 +66,6 @@ rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t *addr)
  * @param addr
  *   The address holding the bit.
  */
-__rte_experimental
 static inline void
 rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -84,9 +76,6 @@ rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Clear the target bit in a 32-bit value to 0 without memory ordering.
  *
  * @param nr
@@ -94,7 +83,6 @@ rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t *addr)
  * @param addr
  *   The address holding the bit.
  */
-__rte_experimental
 static inline void
 rte_bit_relaxed_clear32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -105,9 +93,6 @@ rte_bit_relaxed_clear32(unsigned int nr, volatile uint32_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Return the original bit from a 32-bit value, then set it to 1 without
  * memory ordering.
  *
@@ -118,7 +103,6 @@ rte_bit_relaxed_clear32(unsigned int nr, volatile uint32_t *addr)
  * @return
  *   The original bit.
  */
-__rte_experimental
 static inline uint32_t
 rte_bit_relaxed_test_and_set32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -131,9 +115,6 @@ rte_bit_relaxed_test_and_set32(unsigned int nr, volatile uint32_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Return the original bit from a 32-bit value, then clear it to 0 without
  * memory ordering.
  *
@@ -144,7 +125,6 @@ rte_bit_relaxed_test_and_set32(unsigned int nr, volatile uint32_t *addr)
  * @return
  *   The original bit.
  */
-__rte_experimental
 static inline uint32_t
 rte_bit_relaxed_test_and_clear32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -159,9 +139,6 @@ rte_bit_relaxed_test_and_clear32(unsigned int nr, volatile uint32_t *addr)
 /*------------------------ 64-bit relaxed operations ------------------------*/
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Get the target bit from a 64-bit value without memory ordering.
  *
  * @param nr
@@ -171,7 +148,6 @@ rte_bit_relaxed_test_and_clear32(unsigned int nr, volatile uint32_t *addr)
  * @return
  *   The target bit.
  */
-__rte_experimental
 static inline uint64_t
 rte_bit_relaxed_get64(unsigned int nr, volatile uint64_t *addr)
 {
@@ -182,9 +158,6 @@ rte_bit_relaxed_get64(unsigned int nr, volatile uint64_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Set the target bit in a 64-bit value to 1 without memory ordering.
  *
  * @param nr
@@ -192,7 +165,6 @@ rte_bit_relaxed_get64(unsigned int nr, volatile uint64_t *addr)
  * @param addr
  *   The address holding the bit.
  */
-__rte_experimental
 static inline void
 rte_bit_relaxed_set64(unsigned int nr, volatile uint64_t *addr)
 {
@@ -203,9 +175,6 @@ rte_bit_relaxed_set64(unsigned int nr, volatile uint64_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Clear the target bit in a 64-bit value to 0 without memory ordering.
  *
  * @param nr
@@ -213,7 +182,6 @@ rte_bit_relaxed_set64(unsigned int nr, volatile uint64_t *addr)
  * @param addr
  *   The address holding the bit.
  */
-__rte_experimental
 static inline void
 rte_bit_relaxed_clear64(unsigned int nr, volatile uint64_t *addr)
 {
@@ -224,9 +192,6 @@ rte_bit_relaxed_clear64(unsigned int nr, volatile uint64_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Return the original bit from a 64-bit value, then set it to 1 without
  * memory ordering.
  *
@@ -237,7 +202,6 @@ rte_bit_relaxed_clear64(unsigned int nr, volatile uint64_t *addr)
  * @return
  *   The original bit.
  */
-__rte_experimental
 static inline uint64_t
 rte_bit_relaxed_test_and_set64(unsigned int nr, volatile uint64_t *addr)
 {
@@ -250,9 +214,6 @@ rte_bit_relaxed_test_and_set64(unsigned int nr, volatile uint64_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Return the original bit from a 64-bit value, then clear it to 0 without
  * memory ordering.
  *
@@ -263,7 +224,6 @@ rte_bit_relaxed_test_and_set64(unsigned int nr, volatile uint64_t *addr)
  * @return
  *   The original bit.
  */
-__rte_experimental
 static inline uint64_t
 rte_bit_relaxed_test_and_clear64(unsigned int nr, volatile uint64_t *addr)
 {
-- 
2.39.2


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

* [PATCH 02/15] eal: mark rte_dev API's as stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
  2023-08-09 16:42 ` [PATCH 01/15] eal: make bitops a stable API Stephen Hemminger
@ 2023-08-09 16:42 ` Stephen Hemminger
  2023-08-09 16:42 ` [PATCH 03/15] eal: make rte_class API's stable Stephen Hemminger
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:42 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

These have been around since 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_dev.h | 32 --------------------------------
 lib/eal/version.map       | 28 +++++++++++-----------------
 2 files changed, 11 insertions(+), 49 deletions(-)

diff --git a/lib/eal/include/rte_dev.h b/lib/eal/include/rte_dev.h
index 8568535ac04b..86ef2f54235d 100644
--- a/lib/eal/include/rte_dev.h
+++ b/lib/eal/include/rte_dev.h
@@ -341,7 +341,6 @@ typedef void *(*rte_dev_iterate_t)(const void *start,
  *   0 on successful initialization.
  *   <0 on error.
  */
-__rte_experimental
 int
 rte_dev_iterator_init(struct rte_dev_iterator *it, const char *str);
 
@@ -361,7 +360,6 @@ rte_dev_iterator_init(struct rte_dev_iterator *it, const char *str);
  *   NULL if an error occurred (rte_errno is set).
  *   NULL if no device could be found (rte_errno is not set).
  */
-__rte_experimental
 struct rte_device *
 rte_dev_iterator_next(struct rte_dev_iterator *it);
 
@@ -372,9 +370,6 @@ rte_dev_iterator_next(struct rte_dev_iterator *it);
 	     dev = rte_dev_iterator_next(it))
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * It registers the callback for the specific device.
  * Multiple callbacks can be registered at the same time.
  *
@@ -390,16 +385,12 @@ rte_dev_iterator_next(struct rte_dev_iterator *it);
  *  - On success, zero.
  *  - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_event_callback_register(const char *device_name,
 				rte_dev_event_cb_fn cb_fn,
 				void *cb_arg);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * It unregisters the callback according to the specified device.
  *
  * @param device_name
@@ -415,16 +406,12 @@ rte_dev_event_callback_register(const char *device_name,
  *  - On success, return the number of callback entities removed.
  *  - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_event_callback_unregister(const char *device_name,
 				  rte_dev_event_cb_fn cb_fn,
 				  void *cb_arg);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Executes all the user application registered callbacks for
  * the specific device.
  *
@@ -433,64 +420,47 @@ rte_dev_event_callback_unregister(const char *device_name,
  * @param event
  *  the device event type.
  */
-__rte_experimental
 void
 rte_dev_event_callback_process(const char *device_name,
 			       enum rte_dev_event_type event);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Start the device event monitoring.
  *
  * @return
  *   - On success, zero.
  *   - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_event_monitor_start(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Stop the device event monitoring.
  *
  * @return
  *   - On success, zero.
  *   - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_event_monitor_stop(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Enable hotplug handling for devices.
  *
  * @return
  *   - On success, zero.
  *   - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_hotplug_handle_enable(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Disable hotplug handling for devices.
  *
  * @return
  *   - On success, zero.
  *   - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_hotplug_handle_disable(void);
 
@@ -514,7 +484,6 @@ rte_dev_hotplug_handle_disable(void);
  *	0 if mapping was successful.
  *	Negative value and rte_errno is set otherwise.
  */
-__rte_experimental
 int
 rte_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, size_t len);
 
@@ -538,7 +507,6 @@ rte_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, size_t len);
  *	0 if un-mapping was successful.
  *	Negative value and rte_errno is set otherwise.
  */
-__rte_experimental
 int
 rte_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova,
 		  size_t len);
diff --git a/lib/eal/version.map b/lib/eal/version.map
index bdb98cf47993..3df6c4163276 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -29,8 +29,19 @@ DPDK_24 {
 	rte_dev_bus;
 	rte_dev_bus_info;
 	rte_dev_devargs;
+	rte_dev_dma_map;
+	rte_dev_dma_unmap;
 	rte_dev_driver;
+	rte_dev_event_callback_process;
+	rte_dev_event_callback_register;
+	rte_dev_event_callback_unregister;
+	rte_dev_event_monitor_start;
+	rte_dev_event_monitor_stop;
+	rte_dev_hotplug_handle_disable;
+	rte_dev_hotplug_handle_enable;
 	rte_dev_is_probed;
+	rte_dev_iterator_init;
+	rte_dev_iterator_next;
 	rte_dev_name;
 	rte_dev_numa_node;
 	rte_dev_probe;
@@ -309,28 +320,11 @@ DPDK_24 {
 EXPERIMENTAL {
 	global:
 
-	# added in 18.05
-	rte_dev_event_callback_register;
-	rte_dev_event_callback_unregister;
-	rte_dev_event_monitor_start;
-	rte_dev_event_monitor_stop;
-
 	# added in 18.08
 	rte_class_find;
 	rte_class_find_by_name;
 	rte_class_register;
 	rte_class_unregister;
-	rte_dev_iterator_init;
-	rte_dev_iterator_next;
-
-	# added in 18.11
-	rte_dev_event_callback_process;
-	rte_dev_hotplug_handle_disable;
-	rte_dev_hotplug_handle_enable;
-
-	# added in 19.05
-	rte_dev_dma_map;
-	rte_dev_dma_unmap;
 
 	# added in 20.05
 	__rte_eal_trace_generic_double;
-- 
2.39.2


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

* [PATCH 03/15] eal: make rte_class API's stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
  2023-08-09 16:42 ` [PATCH 01/15] eal: make bitops a stable API Stephen Hemminger
  2023-08-09 16:42 ` [PATCH 02/15] eal: mark rte_dev API's as stable Stephen Hemminger
@ 2023-08-09 16:42 ` Stephen Hemminger
  2023-08-09 16:42 ` [PATCH 04/15] eal: make rte_version_XXX " Stephen Hemminger
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:42 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

These API's have been around for a while.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_class.h |  4 ----
 lib/eal/version.map         | 10 ++++------
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/lib/eal/include/rte_class.h b/lib/eal/include/rte_class.h
index 47b1764e7bf9..487d1abcde72 100644
--- a/lib/eal/include/rte_class.h
+++ b/lib/eal/include/rte_class.h
@@ -76,7 +76,6 @@ typedef int (*rte_class_cmp_t)(const struct rte_class *cls, const void *data);
  * @return
  *	 A pointer to a rte_class structure or NULL in case no class matches
  */
-__rte_experimental
 struct rte_class *
 rte_class_find(const struct rte_class *start, rte_class_cmp_t cmp,
 	       const void *data);
@@ -84,7 +83,6 @@ rte_class_find(const struct rte_class *start, rte_class_cmp_t cmp,
 /**
  * Find the registered class for a given name.
  */
-__rte_experimental
 struct rte_class *
 rte_class_find_by_name(const char *name);
 
@@ -95,7 +93,6 @@ rte_class_find_by_name(const char *name);
  *   A pointer to a rte_class structure describing the class
  *   to be registered.
  */
-__rte_experimental
 void rte_class_register(struct rte_class *cls);
 
 /**
@@ -105,7 +102,6 @@ void rte_class_register(struct rte_class *cls);
  *   A pointer to a rte_class structure describing the class
  *   to be unregistered.
  */
-__rte_experimental
 void rte_class_unregister(struct rte_class *cls);
 
 /**
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 3df6c4163276..2f00f6a97989 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -17,6 +17,10 @@ DPDK_24 {
 	rte_bus_scan;
 	rte_calloc;
 	rte_calloc_socket;
+	rte_class_find;
+	rte_class_find_by_name;
+	rte_class_register;
+	rte_class_unregister;
 	rte_cpu_get_flag_enabled;
 	rte_cpu_get_flag_name;
 	rte_cpu_is_supported; # WINDOWS_NO_EXPORT
@@ -320,12 +324,6 @@ DPDK_24 {
 EXPERIMENTAL {
 	global:
 
-	# added in 18.08
-	rte_class_find;
-	rte_class_find_by_name;
-	rte_class_register;
-	rte_class_unregister;
-
 	# added in 20.05
 	__rte_eal_trace_generic_double;
 	__rte_eal_trace_generic_float;
-- 
2.39.2


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

* [PATCH 04/15] eal: make rte_version_XXX API's stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (2 preceding siblings ...)
  2023-08-09 16:42 ` [PATCH 03/15] eal: make rte_class API's stable Stephen Hemminger
@ 2023-08-09 16:42 ` Stephen Hemminger
  2023-08-10  8:24   ` Bruce Richardson
  2023-08-09 16:42 ` [PATCH 05/15] eal: make rte_drand a stable API Stephen Hemminger
                   ` (12 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:42 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

The subparts of rte_version were added in 2020 and
can now be marked stable.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_version.h |  6 ------
 lib/eal/version.map           | 12 ++++++------
 2 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/lib/eal/include/rte_version.h b/lib/eal/include/rte_version.h
index 414b6167f286..121d75bdbe28 100644
--- a/lib/eal/include/rte_version.h
+++ b/lib/eal/include/rte_version.h
@@ -35,37 +35,31 @@ extern "C" {
 /**
  * Function to return DPDK version prefix string
  */
-__rte_experimental
 const char *rte_version_prefix(void);
 
 /**
  * Function to return DPDK version year
  */
-__rte_experimental
 unsigned int rte_version_year(void);
 
 /**
  * Function to return DPDK version month
  */
-__rte_experimental
 unsigned int rte_version_month(void);
 
 /**
  * Function to return DPDK minor version number
  */
-__rte_experimental
 unsigned int rte_version_minor(void);
 
 /**
  * Function to return DPDK version suffix for any release candidates
  */
-__rte_experimental
 const char *rte_version_suffix(void);
 
 /**
  * Function to return DPDK version release candidate value
  */
-__rte_experimental
 unsigned int rte_version_release(void);
 
 /**
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 2f00f6a97989..e6d2fda95770 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -299,6 +299,12 @@ DPDK_24 {
 	rte_uuid_parse;
 	rte_uuid_unparse;
 	rte_version;
+	rte_version_minor;
+	rte_version_month;
+	rte_version_prefix;
+	rte_version_release;
+	rte_version_suffix;
+	rte_version_year;
 	rte_vfio_clear_group; # WINDOWS_NO_EXPORT
 	rte_vfio_container_create; # WINDOWS_NO_EXPORT
 	rte_vfio_container_destroy; # WINDOWS_NO_EXPORT
@@ -381,12 +387,6 @@ EXPERIMENTAL {
 	rte_thread_key_delete;
 	rte_thread_value_get;
 	rte_thread_value_set;
-	rte_version_minor;
-	rte_version_month;
-	rte_version_prefix;
-	rte_version_release;
-	rte_version_suffix;
-	rte_version_year;
 
 	# added in 21.08
 	rte_power_monitor_multi; # WINDOWS_NO_EXPORT
-- 
2.39.2


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

* [PATCH 05/15] eal: make rte_drand a stable API
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (3 preceding siblings ...)
  2023-08-09 16:42 ` [PATCH 04/15] eal: make rte_version_XXX " Stephen Hemminger
@ 2023-08-09 16:42 ` Stephen Hemminger
  2023-08-09 16:42 ` [PATCH 06/15] eal: make rte_service_lcore_may_be_active stable Stephen Hemminger
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:42 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Mattias Rönnblom

This API was added in 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_random.h | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/lib/eal/include/rte_random.h b/lib/eal/include/rte_random.h
index 2edf5d210b45..da8139cb10ad 100644
--- a/lib/eal/include/rte_random.h
+++ b/lib/eal/include/rte_random.h
@@ -68,9 +68,6 @@ uint64_t
 rte_rand_max(uint64_t upper_bound);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Generates a pseudo-random floating point number.
  *
  * This function returns a non-negative double-precision floating random
@@ -84,7 +81,6 @@ rte_rand_max(uint64_t upper_bound);
  * @return
  *   A pseudo-random value between 0 and 1.0.
  */
-__rte_experimental
 double rte_drand(void);
 
 #ifdef __cplusplus
-- 
2.39.2


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

* [PATCH 06/15] eal: make rte_service_lcore_may_be_active stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (4 preceding siblings ...)
  2023-08-09 16:42 ` [PATCH 05/15] eal: make rte_drand a stable API Stephen Hemminger
@ 2023-08-09 16:42 ` Stephen Hemminger
  2023-08-10  9:08   ` Van Haaren, Harry
  2023-08-09 16:42 ` [PATCH 07/15] eal: make rte_devargs_reset stable Stephen Hemminger
                   ` (10 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:42 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Harry van Haaren

This API was added in 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_service.h | 1 -
 lib/eal/version.map           | 4 ++--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/lib/eal/include/rte_service.h b/lib/eal/include/rte_service.h
index a77f33be488c..da5e246f7abf 100644
--- a/lib/eal/include/rte_service.h
+++ b/lib/eal/include/rte_service.h
@@ -275,7 +275,6 @@ int32_t rte_service_lcore_stop(uint32_t lcore_id);
  * @retval 1 Service thread is in the service core polling loop.
  * @retval -EINVAL Invalid *lcore_id* provided.
  */
-__rte_experimental
 int32_t rte_service_lcore_may_be_active(uint32_t lcore_id);
 
 /**
diff --git a/lib/eal/version.map b/lib/eal/version.map
index e6d2fda95770..2e50d6857d26 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -58,6 +58,7 @@ DPDK_24 {
 	rte_devargs_parsef;
 	rte_devargs_remove;
 	rte_devargs_type_count;
+	rte_drand;
 	rte_driver_name;
 	rte_dump_physmem_layout;
 	rte_dump_stack;
@@ -265,6 +266,7 @@ DPDK_24 {
 	rte_service_lcore_count_services;
 	rte_service_lcore_del;
 	rte_service_lcore_list;
+	rte_service_lcore_may_be_active;
 	rte_service_lcore_reset_all;
 	rte_service_lcore_start;
 	rte_service_lcore_stop;
@@ -371,7 +373,6 @@ EXPERIMENTAL {
 	# added in 20.11
 	__rte_eal_trace_generic_size_t; # WINDOWS_NO_EXPORT
 	rte_cpu_get_intrinsics_support; # WINDOWS_NO_EXPORT
-	rte_service_lcore_may_be_active;
 	rte_vect_get_max_simd_bitwidth;
 	rte_vect_set_max_simd_bitwidth;
 
@@ -400,7 +401,6 @@ EXPERIMENTAL {
 	rte_intr_type_set;
 
 	# added in 22.07
-	rte_drand;
 	rte_thread_get_affinity_by_id;
 	rte_thread_get_priority;
 	rte_thread_self;
-- 
2.39.2


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

* [PATCH 07/15] eal: make rte_devargs_reset stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (5 preceding siblings ...)
  2023-08-09 16:42 ` [PATCH 06/15] eal: make rte_service_lcore_may_be_active stable Stephen Hemminger
@ 2023-08-09 16:42 ` Stephen Hemminger
  2023-08-09 16:43 ` [PATCH 08/15] eal: make pflock API stable Stephen Hemminger
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:42 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

Was added in 20.05 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_devargs.h | 1 -
 lib/eal/version.map           | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/eal/include/rte_devargs.h b/lib/eal/include/rte_devargs.h
index 38dee2f2880c..2a5860353d93 100644
--- a/lib/eal/include/rte_devargs.h
+++ b/lib/eal/include/rte_devargs.h
@@ -169,7 +169,6 @@ __rte_format_printf(2, 0);
  * @param da
  *   The devargs structure holding the device information.
  */
-__rte_experimental
 void
 rte_devargs_reset(struct rte_devargs *da);
 
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 2e50d6857d26..200824a9e91f 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -57,6 +57,7 @@ DPDK_24 {
 	rte_devargs_parse;
 	rte_devargs_parsef;
 	rte_devargs_remove;
+	rte_devargs_reset;
 	rte_devargs_type_count;
 	rte_drand;
 	rte_driver_name;
@@ -382,7 +383,6 @@ EXPERIMENTAL {
 	rte_power_pause; # WINDOWS_NO_EXPORT
 
 	# added in 21.05
-	rte_devargs_reset;
 	rte_intr_callback_unregister_sync;
 	rte_thread_key_create;
 	rte_thread_key_delete;
-- 
2.39.2


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

* [PATCH 08/15] eal: make pflock API stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (6 preceding siblings ...)
  2023-08-09 16:42 ` [PATCH 07/15] eal: make rte_devargs_reset stable Stephen Hemminger
@ 2023-08-09 16:43 ` Stephen Hemminger
  2023-08-09 16:43 ` [PATCH 09/15] eal: make seqcount and seqlock stable Stephen Hemminger
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:43 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

Added in 21.11 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_pflock.h | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/lib/eal/include/rte_pflock.h b/lib/eal/include/rte_pflock.h
index a3f7291fa1f0..a751a7d8add9 100644
--- a/lib/eal/include/rte_pflock.h
+++ b/lib/eal/include/rte_pflock.h
@@ -79,15 +79,11 @@ typedef struct rte_pflock rte_pflock_t;
 #define RTE_PFLOCK_INITIALIZER {  }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Initialize the pflock to an unlocked state.
  *
  * @param pf
  *   A pointer to the pflock.
  */
-__rte_experimental
 static inline void
 rte_pflock_init(struct rte_pflock *pf)
 {
@@ -98,15 +94,11 @@ rte_pflock_init(struct rte_pflock *pf)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Take a pflock for read.
  *
  * @param pf
  *   A pointer to a pflock structure.
  */
-__rte_experimental
 static inline void
 rte_pflock_read_lock(rte_pflock_t *pf)
 {
@@ -127,15 +119,11 @@ rte_pflock_read_lock(rte_pflock_t *pf)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Release a pflock locked for reading.
  *
  * @param pf
  *   A pointer to the pflock structure.
  */
-__rte_experimental
 static inline void
 rte_pflock_read_unlock(rte_pflock_t *pf)
 {
@@ -143,15 +131,11 @@ rte_pflock_read_unlock(rte_pflock_t *pf)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Take the pflock for write.
  *
  * @param pf
  *   A pointer to the pflock structure.
  */
-__rte_experimental
 static inline void
 rte_pflock_write_lock(rte_pflock_t *pf)
 {
@@ -179,15 +163,11 @@ rte_pflock_write_lock(rte_pflock_t *pf)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Release a pflock held for writing.
  *
  * @param pf
  *   A pointer to a pflock structure.
  */
-__rte_experimental
 static inline void
 rte_pflock_write_unlock(rte_pflock_t *pf)
 {
-- 
2.39.2


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

* [PATCH 09/15] eal: make seqcount and seqlock stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (7 preceding siblings ...)
  2023-08-09 16:43 ` [PATCH 08/15] eal: make pflock API stable Stephen Hemminger
@ 2023-08-09 16:43 ` Stephen Hemminger
  2023-08-09 19:47   ` Mattias Rönnblom
  2023-08-09 16:43 ` [PATCH 10/15] eal: mark rte_intr_XXX API's as stable Stephen Hemminger
                   ` (7 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:43 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Mattias Rönnblom

These were add back in 22.07 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_seqcount.h | 23 -----------------------
 lib/eal/include/rte_seqlock.h  | 21 ---------------------
 2 files changed, 44 deletions(-)

diff --git a/lib/eal/include/rte_seqcount.h b/lib/eal/include/rte_seqcount.h
index ff62708e1b7b..6390a5a72f7c 100644
--- a/lib/eal/include/rte_seqcount.h
+++ b/lib/eal/include/rte_seqcount.h
@@ -40,15 +40,11 @@ typedef struct {
 #define RTE_SEQCOUNT_INITIALIZER { .sn = 0 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Initialize the sequence counter.
  *
  * @param seqcount
  *   A pointer to the sequence counter.
  */
-__rte_experimental
 static inline void
 rte_seqcount_init(rte_seqcount_t *seqcount)
 {
@@ -56,9 +52,6 @@ rte_seqcount_init(rte_seqcount_t *seqcount)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Begin a read-side critical section.
  *
  * A call to this function marks the beginning of a read-side critical
@@ -100,8 +93,6 @@ rte_seqcount_init(rte_seqcount_t *seqcount)
  *
  * @see rte_seqcount_read_retry()
  */
-
-__rte_experimental
 static inline uint32_t
 rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
 {
@@ -113,9 +104,6 @@ rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * End a read-side critical section.
  *
  * A call to this function marks the end of a read-side critical
@@ -145,8 +133,6 @@ rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
  *
  * @see rte_seqcount_read_begin()
  */
-
-__rte_experimental
 static inline bool
 rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
 {
@@ -171,9 +157,6 @@ rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Begin a write-side critical section.
  *
  * A call to this function marks the beginning of a write-side
@@ -195,8 +178,6 @@ rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
  *
  * @see rte_seqcount_write_end()
  */
-
-__rte_experimental
 static inline void
 rte_seqcount_write_begin(rte_seqcount_t *seqcount)
 {
@@ -213,9 +194,6 @@ rte_seqcount_write_begin(rte_seqcount_t *seqcount)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * End a write-side critical section.
  *
  * A call to this function marks the end of the write-side critical
@@ -227,7 +205,6 @@ rte_seqcount_write_begin(rte_seqcount_t *seqcount)
  *
  * @see rte_seqcount_write_begin()
  */
-__rte_experimental
 static inline void
 rte_seqcount_write_end(rte_seqcount_t *seqcount)
 {
diff --git a/lib/eal/include/rte_seqlock.h b/lib/eal/include/rte_seqlock.h
index fcbb9c586668..589c98188529 100644
--- a/lib/eal/include/rte_seqlock.h
+++ b/lib/eal/include/rte_seqlock.h
@@ -114,9 +114,6 @@ typedef struct {
 	}
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Initialize the seqlock.
  *
  * This function initializes the seqlock, and leaves the writer-side
@@ -125,7 +122,6 @@ typedef struct {
  * @param seqlock
  *   A pointer to the seqlock.
  */
-__rte_experimental
 static inline void
 rte_seqlock_init(rte_seqlock_t *seqlock)
 {
@@ -134,9 +130,6 @@ rte_seqlock_init(rte_seqlock_t *seqlock)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Begin a read-side critical section.
  *
  * See rte_seqcount_read_retry() for details.
@@ -150,8 +143,6 @@ rte_seqlock_init(rte_seqlock_t *seqlock)
  * @see rte_seqlock_read_retry()
  * @see rte_seqcount_read_retry()
  */
-
-__rte_experimental
 static inline uint32_t
 rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
 {
@@ -159,9 +150,6 @@ rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * End a read-side critical section.
  *
  * See rte_seqcount_read_retry() for details.
@@ -177,7 +165,6 @@ rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
  *
  * @see rte_seqlock_read_begin()
  */
-__rte_experimental
 static inline bool
 rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
 {
@@ -185,9 +172,6 @@ rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Begin a write-side critical section.
  *
  * A call to this function acquires the write lock associated @p
@@ -212,7 +196,6 @@ rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
  *
  * @see rte_seqlock_write_unlock()
  */
-__rte_experimental
 static inline void
 rte_seqlock_write_lock(rte_seqlock_t *seqlock)
 	__rte_exclusive_lock_function(&seqlock->lock)
@@ -224,9 +207,6 @@ rte_seqlock_write_lock(rte_seqlock_t *seqlock)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * End a write-side critical section.
  *
  * A call to this function marks the end of the write-side critical
@@ -238,7 +218,6 @@ rte_seqlock_write_lock(rte_seqlock_t *seqlock)
  *
  * @see rte_seqlock_write_lock()
  */
-__rte_experimental
 static inline void
 rte_seqlock_write_unlock(rte_seqlock_t *seqlock)
 	__rte_unlock_function(&seqlock->lock)
-- 
2.39.2


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

* [PATCH 10/15] eal: mark rte_intr_XXX API's as stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (8 preceding siblings ...)
  2023-08-09 16:43 ` [PATCH 09/15] eal: make seqcount and seqlock stable Stephen Hemminger
@ 2023-08-09 16:43 ` Stephen Hemminger
  2023-08-09 16:43 ` [PATCH 11/15] eal: mark rte_atomic128_cmp_exchange " Stephen Hemminger
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:43 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Harman Kalra

These were added back in 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_interrupts.h | 28 ----------------------------
 lib/eal/version.map              | 14 +++++++-------
 2 files changed, 7 insertions(+), 35 deletions(-)

diff --git a/lib/eal/include/rte_interrupts.h b/lib/eal/include/rte_interrupts.h
index bcafdd58a912..1b9a0b2a78f3 100644
--- a/lib/eal/include/rte_interrupts.h
+++ b/lib/eal/include/rte_interrupts.h
@@ -127,9 +127,6 @@ rte_intr_callback_unregister_pending(const struct rte_intr_handle *intr_handle,
 				rte_intr_unregister_callback_fn ucb_fn);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Loop until rte_intr_callback_unregister() succeeds.
  * After a call to this function,
  * the callback provided by the specified interrupt handle is unregistered.
@@ -146,7 +143,6 @@ rte_intr_callback_unregister_pending(const struct rte_intr_handle *intr_handle,
  *  - On success, return the number of callback entities removed.
  *  - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_intr_callback_unregister_sync(const struct rte_intr_handle *intr_handle,
 				rte_intr_callback_fn cb, void *cb_arg);
@@ -201,9 +197,6 @@ int rte_intr_ack(const struct rte_intr_handle *intr_handle);
 int rte_thread_is_intr(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * It allocates memory for interrupt instance. API takes flag as an argument
  * which define from where memory should be allocated i.e. using DPDK memory
  * management library APIs or normal heap allocation.
@@ -221,28 +214,20 @@ int rte_thread_is_intr(void);
  *  - On success, address of interrupt handle.
  *  - On failure, NULL.
  */
-__rte_experimental
 struct rte_intr_handle *
 rte_intr_instance_alloc(uint32_t flags);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Free the memory allocated for interrupt handle resources.
  *
  * @param intr_handle
  *  Interrupt handle allocated with rte_intr_instance_alloc().
  *  If intr_handle is NULL, no operation is performed.
  */
-__rte_experimental
 void
 rte_intr_instance_free(struct rte_intr_handle *intr_handle);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Set the fd field of interrupt handle with user provided
  * file descriptor.
  *
@@ -255,14 +240,10 @@ rte_intr_instance_free(struct rte_intr_handle *intr_handle);
  *  - On success, zero.
  *  - On failure, a negative value and rte_errno is set.
  */
-__rte_experimental
 int
 rte_intr_fd_set(struct rte_intr_handle *intr_handle, int fd);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Returns the fd field of the given interrupt handle instance.
  *
  * @param intr_handle
@@ -272,14 +253,10 @@ rte_intr_fd_set(struct rte_intr_handle *intr_handle, int fd);
  *  - On success, fd field.
  *  - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_intr_fd_get(const struct rte_intr_handle *intr_handle);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Set the type field of interrupt handle with user provided
  * interrupt type.
  *
@@ -292,15 +269,11 @@ rte_intr_fd_get(const struct rte_intr_handle *intr_handle);
  *  - On success, zero.
  *  - On failure, a negative value and rte_errno is set.
  */
-__rte_experimental
 int
 rte_intr_type_set(struct rte_intr_handle *intr_handle,
 		  enum rte_intr_handle_type type);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Returns the type field of the given interrupt handle instance.
  *
  * @param intr_handle
@@ -310,7 +283,6 @@ rte_intr_type_set(struct rte_intr_handle *intr_handle,
  *  - On success, interrupt type
  *  - On failure, RTE_INTR_HANDLE_UNKNOWN.
  */
-__rte_experimental
 enum rte_intr_handle_type
 rte_intr_type_get(const struct rte_intr_handle *intr_handle);
 
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 200824a9e91f..d75a7379cbdf 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -138,8 +138,15 @@ DPDK_24 {
 	rte_intr_callback_register;
 	rte_intr_callback_unregister;
 	rte_intr_callback_unregister_pending;
+	rte_intr_callback_unregister_sync;
 	rte_intr_disable;
 	rte_intr_enable;
+	rte_intr_fd_get;
+	rte_intr_fd_set;
+	rte_intr_instance_alloc;
+	rte_intr_instance_free;
+	rte_intr_type_get;
+	rte_intr_type_set;
 	rte_keepalive_create; # WINDOWS_NO_EXPORT
 	rte_keepalive_dispatch_pings; # WINDOWS_NO_EXPORT
 	rte_keepalive_mark_alive; # WINDOWS_NO_EXPORT
@@ -383,7 +390,6 @@ EXPERIMENTAL {
 	rte_power_pause; # WINDOWS_NO_EXPORT
 
 	# added in 21.05
-	rte_intr_callback_unregister_sync;
 	rte_thread_key_create;
 	rte_thread_key_delete;
 	rte_thread_value_get;
@@ -393,12 +399,6 @@ EXPERIMENTAL {
 	rte_power_monitor_multi; # WINDOWS_NO_EXPORT
 
 	# added in 21.11
-	rte_intr_fd_get;
-	rte_intr_fd_set;
-	rte_intr_instance_alloc;
-	rte_intr_instance_free;
-	rte_intr_type_get;
-	rte_intr_type_set;
 
 	# added in 22.07
 	rte_thread_get_affinity_by_id;
-- 
2.39.2


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

* [PATCH 11/15] eal: mark rte_atomic128_cmp_exchange as stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (9 preceding siblings ...)
  2023-08-09 16:43 ` [PATCH 10/15] eal: mark rte_intr_XXX API's as stable Stephen Hemminger
@ 2023-08-09 16:43 ` Stephen Hemminger
  2023-08-09 17:50   ` Tyler Retzlaff
  2023-08-09 16:43 ` [PATCH 12/15] eal: make most rte_thread API's stable Stephen Hemminger
                   ` (5 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:43 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Ruifeng Wang, Bruce Richardson, Konstantin Ananyev

This has been around since 2021.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/arm/include/rte_atomic_64.h  | 1 -
 lib/eal/include/generic/rte_atomic.h | 1 -
 lib/eal/x86/include/rte_atomic_64.h  | 1 -
 3 files changed, 3 deletions(-)

diff --git a/lib/eal/arm/include/rte_atomic_64.h b/lib/eal/arm/include/rte_atomic_64.h
index 604791150765..5005a6dfed76 100644
--- a/lib/eal/arm/include/rte_atomic_64.h
+++ b/lib/eal/arm/include/rte_atomic_64.h
@@ -94,7 +94,6 @@ __ATOMIC128_CAS_OP(__cas_128_acq_rel, "caspal")
 
 #endif
 
-__rte_experimental
 static inline int
 rte_atomic128_cmp_exchange(rte_int128_t *dst, rte_int128_t *exp,
 		const rte_int128_t *src, unsigned int weak, int success,
diff --git a/lib/eal/include/generic/rte_atomic.h b/lib/eal/include/generic/rte_atomic.h
index aef44e245548..1a9323dc8ad8 100644
--- a/lib/eal/include/generic/rte_atomic.h
+++ b/lib/eal/include/generic/rte_atomic.h
@@ -1121,7 +1121,6 @@ typedef struct {
  * @return
  *   Non-zero on success; 0 on failure.
  */
-__rte_experimental
 static inline int
 rte_atomic128_cmp_exchange(rte_int128_t *dst,
 			   rte_int128_t *exp,
diff --git a/lib/eal/x86/include/rte_atomic_64.h b/lib/eal/x86/include/rte_atomic_64.h
index 0edee8627224..e968bbf0ce65 100644
--- a/lib/eal/x86/include/rte_atomic_64.h
+++ b/lib/eal/x86/include/rte_atomic_64.h
@@ -182,7 +182,6 @@ static inline void rte_atomic64_clear(rte_atomic64_t *v)
 
 /*------------------------ 128 bit atomic operations -------------------------*/
 
-__rte_experimental
 static inline int
 rte_atomic128_cmp_exchange(rte_int128_t *dst,
 			   rte_int128_t *exp,
-- 
2.39.2


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

* [PATCH 12/15] eal: make most rte_thread API's stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (10 preceding siblings ...)
  2023-08-09 16:43 ` [PATCH 11/15] eal: mark rte_atomic128_cmp_exchange " Stephen Hemminger
@ 2023-08-09 16:43 ` Stephen Hemminger
  2023-08-09 17:53   ` Tyler Retzlaff
  2023-08-09 16:43 ` [PATCH 13/15] eal: mark rte_power " Stephen Hemminger
                   ` (4 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:43 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

All rte_thread API's added before 23.03 release should be
marked as not experimental.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_thread.h | 57 ------------------------------------
 lib/eal/version.map          | 41 +++++++++++---------------
 2 files changed, 17 insertions(+), 81 deletions(-)

diff --git a/lib/eal/include/rte_thread.h b/lib/eal/include/rte_thread.h
index 369e2375f6a0..7da5794fc258 100644
--- a/lib/eal/include/rte_thread.h
+++ b/lib/eal/include/rte_thread.h
@@ -68,9 +68,6 @@ typedef struct {
 typedef struct eal_tls_key *rte_thread_key;
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Create a new thread that will invoke the 'thread_func' routine.
  *
  * @param thread_id
@@ -89,7 +86,6 @@ typedef struct eal_tls_key *rte_thread_key;
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_create(rte_thread_t *thread_id,
 		const rte_thread_attr_t *thread_attr,
 		rte_thread_func thread_func, void *arg);
@@ -128,9 +124,6 @@ rte_thread_create_control(rte_thread_t *thread, const char *name,
 	void *arg);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Waits for the thread identified by 'thread_id' to terminate
  *
  * @param thread_id
@@ -143,13 +136,9 @@ rte_thread_create_control(rte_thread_t *thread, const char *name,
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_join(rte_thread_t thread_id, uint32_t *value_ptr);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Indicate that the return value of the thread is not needed and
  * all thread resources should be release when the thread terminates.
  *
@@ -160,19 +149,14 @@ int rte_thread_join(rte_thread_t thread_id, uint32_t *value_ptr);
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_detach(rte_thread_t thread_id);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Get the id of the calling thread.
  *
  * @return
  *   Return the thread id of the calling thread.
  */
-__rte_experimental
 rte_thread_t rte_thread_self(void);
 
 /**
@@ -196,9 +180,6 @@ void
 rte_thread_set_name(rte_thread_t thread_id, const char *thread_name);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Check if 2 thread ids are equal.
  *
  * @param t1
@@ -211,13 +192,9 @@ rte_thread_set_name(rte_thread_t thread_id, const char *thread_name);
  *   If the ids are equal, return nonzero.
  *   Otherwise, return 0.
  */
-__rte_experimental
 int rte_thread_equal(rte_thread_t t1, rte_thread_t t2);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Initialize the attributes of a thread.
  * These attributes can be passed to the rte_thread_create() function
  * that will create a new thread and set its attributes according to attr.
@@ -229,13 +206,9 @@ int rte_thread_equal(rte_thread_t t1, rte_thread_t t2);
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_attr_init(rte_thread_attr_t *attr);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Set the thread priority value in the thread attributes pointed to
  * by 'thread_attr'.
  *
@@ -249,16 +222,12 @@ int rte_thread_attr_init(rte_thread_attr_t *attr);
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_attr_set_priority(rte_thread_attr_t *thread_attr,
 		enum rte_thread_priority priority);
 
 #ifdef RTE_HAS_CPUSET
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Set the CPU affinity value in the thread attributes pointed to
  * by 'thread_attr'.
  *
@@ -272,14 +241,10 @@ int rte_thread_attr_set_priority(rte_thread_attr_t *thread_attr,
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_attr_set_affinity(rte_thread_attr_t *thread_attr,
 		rte_cpuset_t *cpuset);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Get the value of CPU affinity that is set in the thread attributes pointed
  * to by 'thread_attr'.
  *
@@ -293,14 +258,10 @@ int rte_thread_attr_set_affinity(rte_thread_attr_t *thread_attr,
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_attr_get_affinity(rte_thread_attr_t *thread_attr,
 		rte_cpuset_t *cpuset);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Set the affinity of thread 'thread_id' to the cpu set
  * specified by 'cpuset'.
  *
@@ -314,14 +275,10 @@ int rte_thread_attr_get_affinity(rte_thread_attr_t *thread_attr,
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_set_affinity_by_id(rte_thread_t thread_id,
 		const rte_cpuset_t *cpuset);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Get the affinity of thread 'thread_id' and store it
  * in 'cpuset'.
  *
@@ -335,7 +292,6 @@ int rte_thread_set_affinity_by_id(rte_thread_t thread_id,
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_get_affinity_by_id(rte_thread_t thread_id,
 		rte_cpuset_t *cpuset);
 
@@ -362,9 +318,6 @@ void rte_thread_get_affinity(rte_cpuset_t *cpusetp);
 #endif /* RTE_HAS_CPUSET */
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Get the priority of a thread.
  *
  * @param thread_id
@@ -377,14 +330,10 @@ void rte_thread_get_affinity(rte_cpuset_t *cpusetp);
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_get_priority(rte_thread_t thread_id,
 		enum rte_thread_priority *priority);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Set the priority of a thread.
  *
  * @param thread_id
@@ -397,7 +346,6 @@ int rte_thread_get_priority(rte_thread_t thread_id,
  *   On success, return 0.
  *   On failure, return a positive errno-style error number.
  */
-__rte_experimental
 int rte_thread_set_priority(rte_thread_t thread_id,
 		enum rte_thread_priority priority);
 
@@ -418,8 +366,6 @@ int rte_thread_set_priority(rte_thread_t thread_id,
  *   rte_errno can be: ENOMEM  - Memory allocation error.
  *                     ENOEXEC - Specific OS error.
  */
-
-__rte_experimental
 int rte_thread_key_create(rte_thread_key *key,
 			void (*destructor)(void *));
 
@@ -435,7 +381,6 @@ int rte_thread_key_create(rte_thread_key *key,
  *   rte_errno can be: EINVAL  - Invalid parameter passed.
  *                     ENOEXEC - Specific OS error.
  */
-__rte_experimental
 int rte_thread_key_delete(rte_thread_key key);
 
 /**
@@ -452,7 +397,6 @@ int rte_thread_key_delete(rte_thread_key key);
  *   rte_errno can be: EINVAL  - Invalid parameter passed.
  *                     ENOEXEC - Specific OS error.
  */
-__rte_experimental
 int rte_thread_value_set(rte_thread_key key, const void *value);
 
 /**
@@ -467,7 +411,6 @@ int rte_thread_value_set(rte_thread_key key, const void *value);
  *   rte_errno can be: EINVAL  - Invalid parameter passed.
  *                     ENOEXEC - Specific OS error.
  */
-__rte_experimental
 void *rte_thread_value_get(rte_thread_key key);
 
 #ifdef __cplusplus
diff --git a/lib/eal/version.map b/lib/eal/version.map
index d75a7379cbdf..a71147aec83f 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -298,12 +298,29 @@ DPDK_24 {
 	rte_strscpy;
 	rte_strsplit;
 	rte_sys_gettid;
+	rte_thread_attr_get_affinity;
+	rte_thread_attr_init;
+	rte_thread_attr_set_affinity;
+	rte_thread_attr_set_priority;
+	rte_thread_create;
+	rte_thread_detach;
+	rte_thread_equal;
 	rte_thread_get_affinity;
+	rte_thread_get_affinity_by_id;
+	rte_thread_get_priority;
 	rte_thread_is_intr;
+	rte_thread_join;
+	rte_thread_key_create;
+	rte_thread_key_delete;
 	rte_thread_register;
+	rte_thread_self;
 	rte_thread_set_affinity;
+	rte_thread_set_affinity_by_id;
+	rte_thread_set_priority;
 	rte_thread_setname;
 	rte_thread_unregister;
+	rte_thread_value_get;
+	rte_thread_value_set;
 	rte_uuid_compare;
 	rte_uuid_is_null;
 	rte_uuid_parse;
@@ -389,34 +406,10 @@ EXPERIMENTAL {
 	rte_power_monitor_wakeup; # WINDOWS_NO_EXPORT
 	rte_power_pause; # WINDOWS_NO_EXPORT
 
-	# added in 21.05
-	rte_thread_key_create;
-	rte_thread_key_delete;
-	rte_thread_value_get;
-	rte_thread_value_set;
 
 	# added in 21.08
 	rte_power_monitor_multi; # WINDOWS_NO_EXPORT
 
-	# added in 21.11
-
-	# added in 22.07
-	rte_thread_get_affinity_by_id;
-	rte_thread_get_priority;
-	rte_thread_self;
-	rte_thread_set_affinity_by_id;
-	rte_thread_set_priority;
-
-	# added in 22.11
-	rte_thread_attr_get_affinity;
-	rte_thread_attr_init;
-	rte_thread_attr_set_affinity;
-	rte_thread_attr_set_priority;
-	rte_thread_create;
-	rte_thread_detach;
-	rte_thread_equal;
-	rte_thread_join;
-
 	# added in 23.03
 	rte_lcore_register_usage_cb;
 	rte_thread_create_control;
-- 
2.39.2


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

* [PATCH 13/15] eal: mark rte_power API's stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (11 preceding siblings ...)
  2023-08-09 16:43 ` [PATCH 12/15] eal: make most rte_thread API's stable Stephen Hemminger
@ 2023-08-09 16:43 ` Stephen Hemminger
  2023-08-09 16:43 ` [PATCH 14/15] eal: mark rte_eal_vfio_get_token stable Stephen Hemminger
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:43 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

These were added back in 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/generic/rte_power_intrinsics.h | 16 ----------------
 lib/eal/version.map                            | 13 ++++---------
 2 files changed, 4 insertions(+), 25 deletions(-)

diff --git a/lib/eal/include/generic/rte_power_intrinsics.h b/lib/eal/include/generic/rte_power_intrinsics.h
index f981df7d75a1..922c32c83fdb 100644
--- a/lib/eal/include/generic/rte_power_intrinsics.h
+++ b/lib/eal/include/generic/rte_power_intrinsics.h
@@ -54,9 +54,6 @@ struct rte_power_monitor_cond {
 };
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Monitor specific address for changes. This will cause the CPU to enter an
  * architecture-defined optimized power state until either the specified
  * memory address is written to, a certain TSC timestamp is reached, or other
@@ -84,14 +81,10 @@ struct rte_power_monitor_cond {
  *   -EINVAL on invalid parameters
  *   -ENOTSUP if unsupported
  */
-__rte_experimental
 int rte_power_monitor(const struct rte_power_monitor_cond *pmc,
 		const uint64_t tsc_timestamp);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Wake up a specific lcore that is in a power optimized state and is monitoring
  * an address.
  *
@@ -104,13 +97,9 @@ int rte_power_monitor(const struct rte_power_monitor_cond *pmc,
  * @param lcore_id
  *   Lcore ID of a sleeping thread.
  */
-__rte_experimental
 int rte_power_monitor_wakeup(const unsigned int lcore_id);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Enter an architecture-defined optimized power state until a certain TSC
  * timestamp is reached.
  *
@@ -126,13 +115,9 @@ int rte_power_monitor_wakeup(const unsigned int lcore_id);
  *   -EINVAL on invalid parameters
  *   -ENOTSUP if unsupported
  */
-__rte_experimental
 int rte_power_pause(const uint64_t tsc_timestamp);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Monitor a set of addresses for changes. This will cause the CPU to enter an
  * architecture-defined optimized power state until either one of the specified
  * memory addresses is written to, a certain TSC timestamp is reached, or other
@@ -160,7 +145,6 @@ int rte_power_pause(const uint64_t tsc_timestamp);
  *   -EINVAL on invalid parameters
  *   -ENOTSUP if unsupported
  */
-__rte_experimental
 int rte_power_monitor_multi(const struct rte_power_monitor_cond pmc[],
 		const uint32_t num, const uint64_t tsc_timestamp);
 
diff --git a/lib/eal/version.map b/lib/eal/version.map
index a71147aec83f..3b42d6e0e4c1 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -250,6 +250,10 @@ DPDK_24 {
 	rte_mp_request_sync;
 	rte_mp_sendmsg;
 	rte_openlog_stream;
+	rte_power_monitor; # WINDOWS_NO_EXPORT
+	rte_power_monitor_wakeup; # WINDOWS_NO_EXPORT
+	rte_power_pause; # WINDOWS_NO_EXPORT
+	rte_power_monitor_multi; # WINDOWS_NO_EXPORT
 	rte_rand;
 	rte_rand_max;
 	rte_realloc;
@@ -401,15 +405,6 @@ EXPERIMENTAL {
 	rte_vect_get_max_simd_bitwidth;
 	rte_vect_set_max_simd_bitwidth;
 
-	# added in 21.02
-	rte_power_monitor; # WINDOWS_NO_EXPORT
-	rte_power_monitor_wakeup; # WINDOWS_NO_EXPORT
-	rte_power_pause; # WINDOWS_NO_EXPORT
-
-
-	# added in 21.08
-	rte_power_monitor_multi; # WINDOWS_NO_EXPORT
-
 	# added in 23.03
 	rte_lcore_register_usage_cb;
 	rte_thread_create_control;
-- 
2.39.2


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

* [PATCH 14/15] eal: mark rte_eal_vfio_get_token stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (12 preceding siblings ...)
  2023-08-09 16:43 ` [PATCH 13/15] eal: mark rte_power " Stephen Hemminger
@ 2023-08-09 16:43 ` Stephen Hemminger
  2023-08-09 17:55   ` Tyler Retzlaff
  2023-08-09 16:43 ` [PATCH 15/15] eal: mark rte_vect simd bandwidth API as stable Stephen Hemminger
                   ` (2 subsequent siblings)
  16 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:43 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

This API was added in 20.08 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_eal.h | 4 ----
 lib/eal/version.map       | 4 +---
 2 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/lib/eal/include/rte_eal.h b/lib/eal/include/rte_eal.h
index 53c4a5519e61..aac57665e6c2 100644
--- a/lib/eal/include/rte_eal.h
+++ b/lib/eal/include/rte_eal.h
@@ -412,16 +412,12 @@ int rte_eal_create_uio_dev(void);
 enum rte_intr_mode rte_eal_vfio_intr_mode(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Copy the user-configured vfio VF token.
  *
  * @param vf_token
  *   vfio VF token configured with the command line is copied
  *   into this parameter, zero uuid by default.
  */
-__rte_experimental
 void rte_eal_vfio_get_vf_token(rte_uuid_t vf_token);
 
 /**
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 3b42d6e0e4c1..65435ae48696 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -89,6 +89,7 @@ DPDK_24 {
 	rte_eal_tailq_lookup;
 	rte_eal_tailq_register;
 	rte_eal_using_phys_addrs;
+	rte_eal_vfio_get_vf_token; # WINDOWS_NO_EXPORT
 	rte_eal_vfio_intr_mode; # WINDOWS_NO_EXPORT
 	rte_eal_wait_lcore;
 	rte_epoll_ctl;
@@ -396,9 +397,6 @@ EXPERIMENTAL {
 	rte_trace_regexp; # WINDOWS_NO_EXPORT
 	rte_trace_save; # WINDOWS_NO_EXPORT
 
-	# added in 20.08
-	rte_eal_vfio_get_vf_token; # WINDOWS_NO_EXPORT
-
 	# added in 20.11
 	__rte_eal_trace_generic_size_t; # WINDOWS_NO_EXPORT
 	rte_cpu_get_intrinsics_support; # WINDOWS_NO_EXPORT
-- 
2.39.2


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

* [PATCH 15/15] eal: mark rte_vect simd bandwidth API as stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (13 preceding siblings ...)
  2023-08-09 16:43 ` [PATCH 14/15] eal: mark rte_eal_vfio_get_token stable Stephen Hemminger
@ 2023-08-09 16:43 ` Stephen Hemminger
  2023-10-18 19:29 ` [PATCH 00/15] eal: mark older API's stable David Marchand
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
  16 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 16:43 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

These were added back in 20.11.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/generic/rte_vect.h | 8 --------
 lib/eal/version.map                | 4 ++--
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/lib/eal/include/generic/rte_vect.h b/lib/eal/include/generic/rte_vect.h
index 3fec2bf1a2ec..bf541ce9d928 100644
--- a/lib/eal/include/generic/rte_vect.h
+++ b/lib/eal/include/generic/rte_vect.h
@@ -204,21 +204,14 @@ enum rte_vect_max_simd {
 };
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Get the supported SIMD bitwidth.
  *
  * @return
  *   uint16_t bitwidth.
  */
-__rte_experimental
 uint16_t rte_vect_get_max_simd_bitwidth(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Set the supported SIMD bitwidth.
  * This API should only be called once at initialization, before EAL init.
  *
@@ -229,7 +222,6 @@ uint16_t rte_vect_get_max_simd_bitwidth(void);
  *   - -EINVAL on invalid bitwidth parameter.
  *   - -EPERM if bitwidth is forced.
  */
-__rte_experimental
 int rte_vect_set_max_simd_bitwidth(uint16_t bitwidth);
 
 #endif /* _RTE_VECT_H_ */
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 65435ae48696..d354b9966ce9 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -330,6 +330,8 @@ DPDK_24 {
 	rte_uuid_is_null;
 	rte_uuid_parse;
 	rte_uuid_unparse;
+	rte_vect_get_max_simd_bitwidth;
+	rte_vect_set_max_simd_bitwidth;
 	rte_version;
 	rte_version_minor;
 	rte_version_month;
@@ -400,8 +402,6 @@ EXPERIMENTAL {
 	# added in 20.11
 	__rte_eal_trace_generic_size_t; # WINDOWS_NO_EXPORT
 	rte_cpu_get_intrinsics_support; # WINDOWS_NO_EXPORT
-	rte_vect_get_max_simd_bitwidth;
-	rte_vect_set_max_simd_bitwidth;
 
 	# added in 23.03
 	rte_lcore_register_usage_cb;
-- 
2.39.2


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

* Re: [PATCH 11/15] eal: mark rte_atomic128_cmp_exchange as stable
  2023-08-09 16:43 ` [PATCH 11/15] eal: mark rte_atomic128_cmp_exchange " Stephen Hemminger
@ 2023-08-09 17:50   ` Tyler Retzlaff
  0 siblings, 0 replies; 47+ messages in thread
From: Tyler Retzlaff @ 2023-08-09 17:50 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev, Ruifeng Wang, Bruce Richardson, Konstantin Ananyev

On Wed, Aug 09, 2023 at 09:43:03AM -0700, Stephen Hemminger wrote:
> This has been around since 2021.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  lib/eal/arm/include/rte_atomic_64.h  | 1 -
>  lib/eal/include/generic/rte_atomic.h | 1 -
>  lib/eal/x86/include/rte_atomic_64.h  | 1 -
>  3 files changed, 3 deletions(-)
> 
> diff --git a/lib/eal/arm/include/rte_atomic_64.h b/lib/eal/arm/include/rte_atomic_64.h
> index 604791150765..5005a6dfed76 100644
> --- a/lib/eal/arm/include/rte_atomic_64.h
> +++ b/lib/eal/arm/include/rte_atomic_64.h
> @@ -94,7 +94,6 @@ __ATOMIC128_CAS_OP(__cas_128_acq_rel, "caspal")
>  
>  #endif
>  
> -__rte_experimental
>  static inline int
>  rte_atomic128_cmp_exchange(rte_int128_t *dst, rte_int128_t *exp,
>  		const rte_int128_t *src, unsigned int weak, int success,
> diff --git a/lib/eal/include/generic/rte_atomic.h b/lib/eal/include/generic/rte_atomic.h
> index aef44e245548..1a9323dc8ad8 100644
> --- a/lib/eal/include/generic/rte_atomic.h
> +++ b/lib/eal/include/generic/rte_atomic.h
> @@ -1121,7 +1121,6 @@ typedef struct {
>   * @return
>   *   Non-zero on success; 0 on failure.
>   */
> -__rte_experimental
>  static inline int
>  rte_atomic128_cmp_exchange(rte_int128_t *dst,
>  			   rte_int128_t *exp,
> diff --git a/lib/eal/x86/include/rte_atomic_64.h b/lib/eal/x86/include/rte_atomic_64.h
> index 0edee8627224..e968bbf0ce65 100644
> --- a/lib/eal/x86/include/rte_atomic_64.h
> +++ b/lib/eal/x86/include/rte_atomic_64.h
> @@ -182,7 +182,6 @@ static inline void rte_atomic64_clear(rte_atomic64_t *v)
>  
>  /*------------------------ 128 bit atomic operations -------------------------*/
>  
> -__rte_experimental
>  static inline int
>  rte_atomic128_cmp_exchange(rte_int128_t *dst,
>  			   rte_int128_t *exp,

I'm wondering if given the fluidity of changes in atomics right now we
should hold this for a little while / close to the end of the merge
window just in case we want to adjust it?

> -- 
> 2.39.2

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

* Re: [PATCH 12/15] eal: make most rte_thread API's stable
  2023-08-09 16:43 ` [PATCH 12/15] eal: make most rte_thread API's stable Stephen Hemminger
@ 2023-08-09 17:53   ` Tyler Retzlaff
  0 siblings, 0 replies; 47+ messages in thread
From: Tyler Retzlaff @ 2023-08-09 17:53 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

On Wed, Aug 09, 2023 at 09:43:04AM -0700, Stephen Hemminger wrote:
> All rte_thread API's added before 23.03 release should be
> marked as not experimental.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---

Already acked the series but since i know about this set here's an
explicit ack.

note: i have on my todo list but still haven't managed to get to it
adding the __rte_deprecated to rte_ctrl_thread_create which has a posix
name in the signature. rte_thread_create_control was introduced as a
replacement in .. 23.07.

Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>

>  lib/eal/include/rte_thread.h | 57 ------------------------------------
>  lib/eal/version.map          | 41 +++++++++++---------------
>  2 files changed, 17 insertions(+), 81 deletions(-)
> 
> diff --git a/lib/eal/include/rte_thread.h b/lib/eal/include/rte_thread.h
> index 369e2375f6a0..7da5794fc258 100644
> --- a/lib/eal/include/rte_thread.h
> +++ b/lib/eal/include/rte_thread.h
> @@ -68,9 +68,6 @@ typedef struct {
>  typedef struct eal_tls_key *rte_thread_key;
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Create a new thread that will invoke the 'thread_func' routine.
>   *
>   * @param thread_id
> @@ -89,7 +86,6 @@ typedef struct eal_tls_key *rte_thread_key;
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_create(rte_thread_t *thread_id,
>  		const rte_thread_attr_t *thread_attr,
>  		rte_thread_func thread_func, void *arg);
> @@ -128,9 +124,6 @@ rte_thread_create_control(rte_thread_t *thread, const char *name,
>  	void *arg);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Waits for the thread identified by 'thread_id' to terminate
>   *
>   * @param thread_id
> @@ -143,13 +136,9 @@ rte_thread_create_control(rte_thread_t *thread, const char *name,
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_join(rte_thread_t thread_id, uint32_t *value_ptr);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Indicate that the return value of the thread is not needed and
>   * all thread resources should be release when the thread terminates.
>   *
> @@ -160,19 +149,14 @@ int rte_thread_join(rte_thread_t thread_id, uint32_t *value_ptr);
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_detach(rte_thread_t thread_id);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Get the id of the calling thread.
>   *
>   * @return
>   *   Return the thread id of the calling thread.
>   */
> -__rte_experimental
>  rte_thread_t rte_thread_self(void);
>  
>  /**
> @@ -196,9 +180,6 @@ void
>  rte_thread_set_name(rte_thread_t thread_id, const char *thread_name);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Check if 2 thread ids are equal.
>   *
>   * @param t1
> @@ -211,13 +192,9 @@ rte_thread_set_name(rte_thread_t thread_id, const char *thread_name);
>   *   If the ids are equal, return nonzero.
>   *   Otherwise, return 0.
>   */
> -__rte_experimental
>  int rte_thread_equal(rte_thread_t t1, rte_thread_t t2);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Initialize the attributes of a thread.
>   * These attributes can be passed to the rte_thread_create() function
>   * that will create a new thread and set its attributes according to attr.
> @@ -229,13 +206,9 @@ int rte_thread_equal(rte_thread_t t1, rte_thread_t t2);
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_attr_init(rte_thread_attr_t *attr);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Set the thread priority value in the thread attributes pointed to
>   * by 'thread_attr'.
>   *
> @@ -249,16 +222,12 @@ int rte_thread_attr_init(rte_thread_attr_t *attr);
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_attr_set_priority(rte_thread_attr_t *thread_attr,
>  		enum rte_thread_priority priority);
>  
>  #ifdef RTE_HAS_CPUSET
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Set the CPU affinity value in the thread attributes pointed to
>   * by 'thread_attr'.
>   *
> @@ -272,14 +241,10 @@ int rte_thread_attr_set_priority(rte_thread_attr_t *thread_attr,
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_attr_set_affinity(rte_thread_attr_t *thread_attr,
>  		rte_cpuset_t *cpuset);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Get the value of CPU affinity that is set in the thread attributes pointed
>   * to by 'thread_attr'.
>   *
> @@ -293,14 +258,10 @@ int rte_thread_attr_set_affinity(rte_thread_attr_t *thread_attr,
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_attr_get_affinity(rte_thread_attr_t *thread_attr,
>  		rte_cpuset_t *cpuset);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Set the affinity of thread 'thread_id' to the cpu set
>   * specified by 'cpuset'.
>   *
> @@ -314,14 +275,10 @@ int rte_thread_attr_get_affinity(rte_thread_attr_t *thread_attr,
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_set_affinity_by_id(rte_thread_t thread_id,
>  		const rte_cpuset_t *cpuset);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Get the affinity of thread 'thread_id' and store it
>   * in 'cpuset'.
>   *
> @@ -335,7 +292,6 @@ int rte_thread_set_affinity_by_id(rte_thread_t thread_id,
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_get_affinity_by_id(rte_thread_t thread_id,
>  		rte_cpuset_t *cpuset);
>  
> @@ -362,9 +318,6 @@ void rte_thread_get_affinity(rte_cpuset_t *cpusetp);
>  #endif /* RTE_HAS_CPUSET */
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Get the priority of a thread.
>   *
>   * @param thread_id
> @@ -377,14 +330,10 @@ void rte_thread_get_affinity(rte_cpuset_t *cpusetp);
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_get_priority(rte_thread_t thread_id,
>  		enum rte_thread_priority *priority);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Set the priority of a thread.
>   *
>   * @param thread_id
> @@ -397,7 +346,6 @@ int rte_thread_get_priority(rte_thread_t thread_id,
>   *   On success, return 0.
>   *   On failure, return a positive errno-style error number.
>   */
> -__rte_experimental
>  int rte_thread_set_priority(rte_thread_t thread_id,
>  		enum rte_thread_priority priority);
>  
> @@ -418,8 +366,6 @@ int rte_thread_set_priority(rte_thread_t thread_id,
>   *   rte_errno can be: ENOMEM  - Memory allocation error.
>   *                     ENOEXEC - Specific OS error.
>   */
> -
> -__rte_experimental
>  int rte_thread_key_create(rte_thread_key *key,
>  			void (*destructor)(void *));
>  
> @@ -435,7 +381,6 @@ int rte_thread_key_create(rte_thread_key *key,
>   *   rte_errno can be: EINVAL  - Invalid parameter passed.
>   *                     ENOEXEC - Specific OS error.
>   */
> -__rte_experimental
>  int rte_thread_key_delete(rte_thread_key key);
>  
>  /**
> @@ -452,7 +397,6 @@ int rte_thread_key_delete(rte_thread_key key);
>   *   rte_errno can be: EINVAL  - Invalid parameter passed.
>   *                     ENOEXEC - Specific OS error.
>   */
> -__rte_experimental
>  int rte_thread_value_set(rte_thread_key key, const void *value);
>  
>  /**
> @@ -467,7 +411,6 @@ int rte_thread_value_set(rte_thread_key key, const void *value);
>   *   rte_errno can be: EINVAL  - Invalid parameter passed.
>   *                     ENOEXEC - Specific OS error.
>   */
> -__rte_experimental
>  void *rte_thread_value_get(rte_thread_key key);
>  
>  #ifdef __cplusplus
> diff --git a/lib/eal/version.map b/lib/eal/version.map
> index d75a7379cbdf..a71147aec83f 100644
> --- a/lib/eal/version.map
> +++ b/lib/eal/version.map
> @@ -298,12 +298,29 @@ DPDK_24 {
>  	rte_strscpy;
>  	rte_strsplit;
>  	rte_sys_gettid;
> +	rte_thread_attr_get_affinity;
> +	rte_thread_attr_init;
> +	rte_thread_attr_set_affinity;
> +	rte_thread_attr_set_priority;
> +	rte_thread_create;
> +	rte_thread_detach;
> +	rte_thread_equal;
>  	rte_thread_get_affinity;
> +	rte_thread_get_affinity_by_id;
> +	rte_thread_get_priority;
>  	rte_thread_is_intr;
> +	rte_thread_join;
> +	rte_thread_key_create;
> +	rte_thread_key_delete;
>  	rte_thread_register;
> +	rte_thread_self;
>  	rte_thread_set_affinity;
> +	rte_thread_set_affinity_by_id;
> +	rte_thread_set_priority;
>  	rte_thread_setname;
>  	rte_thread_unregister;
> +	rte_thread_value_get;
> +	rte_thread_value_set;
>  	rte_uuid_compare;
>  	rte_uuid_is_null;
>  	rte_uuid_parse;
> @@ -389,34 +406,10 @@ EXPERIMENTAL {
>  	rte_power_monitor_wakeup; # WINDOWS_NO_EXPORT
>  	rte_power_pause; # WINDOWS_NO_EXPORT
>  
> -	# added in 21.05
> -	rte_thread_key_create;
> -	rte_thread_key_delete;
> -	rte_thread_value_get;
> -	rte_thread_value_set;
>  
>  	# added in 21.08
>  	rte_power_monitor_multi; # WINDOWS_NO_EXPORT
>  
> -	# added in 21.11
> -
> -	# added in 22.07
> -	rte_thread_get_affinity_by_id;
> -	rte_thread_get_priority;
> -	rte_thread_self;
> -	rte_thread_set_affinity_by_id;
> -	rte_thread_set_priority;
> -
> -	# added in 22.11
> -	rte_thread_attr_get_affinity;
> -	rte_thread_attr_init;
> -	rte_thread_attr_set_affinity;
> -	rte_thread_attr_set_priority;
> -	rte_thread_create;
> -	rte_thread_detach;
> -	rte_thread_equal;
> -	rte_thread_join;
> -
>  	# added in 23.03
>  	rte_lcore_register_usage_cb;
>  	rte_thread_create_control;
> -- 
> 2.39.2

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

* Re: [PATCH 14/15] eal: mark rte_eal_vfio_get_token stable
  2023-08-09 16:43 ` [PATCH 14/15] eal: mark rte_eal_vfio_get_token stable Stephen Hemminger
@ 2023-08-09 17:55   ` Tyler Retzlaff
  0 siblings, 0 replies; 47+ messages in thread
From: Tyler Retzlaff @ 2023-08-09 17:55 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

On Wed, Aug 09, 2023 at 09:43:06AM -0700, Stephen Hemminger wrote:
> This API was added in 20.08 release.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---

there is driver work going on for similar functionality to vfio on
windows. it's possible that this api could be exposed for windows but
in the current form may not be suitable.

*not blocking* 

just wanted to make you aware, i don't have a firm enough schedule to
derail this process.

>  lib/eal/include/rte_eal.h | 4 ----
>  lib/eal/version.map       | 4 +---
>  2 files changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/lib/eal/include/rte_eal.h b/lib/eal/include/rte_eal.h
> index 53c4a5519e61..aac57665e6c2 100644
> --- a/lib/eal/include/rte_eal.h
> +++ b/lib/eal/include/rte_eal.h
> @@ -412,16 +412,12 @@ int rte_eal_create_uio_dev(void);
>  enum rte_intr_mode rte_eal_vfio_intr_mode(void);
>  
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>   * Copy the user-configured vfio VF token.
>   *
>   * @param vf_token
>   *   vfio VF token configured with the command line is copied
>   *   into this parameter, zero uuid by default.
>   */
> -__rte_experimental
>  void rte_eal_vfio_get_vf_token(rte_uuid_t vf_token);
>  
>  /**
> diff --git a/lib/eal/version.map b/lib/eal/version.map
> index 3b42d6e0e4c1..65435ae48696 100644
> --- a/lib/eal/version.map
> +++ b/lib/eal/version.map
> @@ -89,6 +89,7 @@ DPDK_24 {
>  	rte_eal_tailq_lookup;
>  	rte_eal_tailq_register;
>  	rte_eal_using_phys_addrs;
> +	rte_eal_vfio_get_vf_token; # WINDOWS_NO_EXPORT
>  	rte_eal_vfio_intr_mode; # WINDOWS_NO_EXPORT
>  	rte_eal_wait_lcore;
>  	rte_epoll_ctl;
> @@ -396,9 +397,6 @@ EXPERIMENTAL {
>  	rte_trace_regexp; # WINDOWS_NO_EXPORT
>  	rte_trace_save; # WINDOWS_NO_EXPORT
>  
> -	# added in 20.08
> -	rte_eal_vfio_get_vf_token; # WINDOWS_NO_EXPORT
> -
>  	# added in 20.11
>  	__rte_eal_trace_generic_size_t; # WINDOWS_NO_EXPORT
>  	rte_cpu_get_intrinsics_support; # WINDOWS_NO_EXPORT
> -- 
> 2.39.2

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

* Re: [PATCH 01/15] eal: make bitops a stable API
  2023-08-09 16:42 ` [PATCH 01/15] eal: make bitops a stable API Stephen Hemminger
@ 2023-08-09 17:58   ` Tyler Retzlaff
  2023-08-09 20:07     ` Stephen Hemminger
  0 siblings, 1 reply; 47+ messages in thread
From: Tyler Retzlaff @ 2023-08-09 17:58 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev, Cristian Dumitrescu, Joyce Kong, David Marchand

On Wed, Aug 09, 2023 at 09:42:53AM -0700, Stephen Hemminger wrote:
> These were added in 20.05 release.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---

can i ask that this patch be held until this series is merged?

https://patchwork.dpdk.org/project/dpdk/list/?series=27612

i'm already overloaded with rebasing for other changes, i'm working
with david to get the above series merged.

adding david as a fyi

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

* Re: [PATCH 09/15] eal: make seqcount and seqlock stable
  2023-08-09 16:43 ` [PATCH 09/15] eal: make seqcount and seqlock stable Stephen Hemminger
@ 2023-08-09 19:47   ` Mattias Rönnblom
  0 siblings, 0 replies; 47+ messages in thread
From: Mattias Rönnblom @ 2023-08-09 19:47 UTC (permalink / raw)
  To: Stephen Hemminger, dev; +Cc: Mattias Rönnblom

On 2023-08-09 18:43, Stephen Hemminger wrote:
> These were add back in 22.07 release.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>   lib/eal/include/rte_seqcount.h | 23 -----------------------
>   lib/eal/include/rte_seqlock.h  | 21 ---------------------
>   2 files changed, 44 deletions(-)
> 

Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>

> diff --git a/lib/eal/include/rte_seqcount.h b/lib/eal/include/rte_seqcount.h
> index ff62708e1b7b..6390a5a72f7c 100644
> --- a/lib/eal/include/rte_seqcount.h
> +++ b/lib/eal/include/rte_seqcount.h
> @@ -40,15 +40,11 @@ typedef struct {
>   #define RTE_SEQCOUNT_INITIALIZER { .sn = 0 }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Initialize the sequence counter.
>    *
>    * @param seqcount
>    *   A pointer to the sequence counter.
>    */
> -__rte_experimental
>   static inline void
>   rte_seqcount_init(rte_seqcount_t *seqcount)
>   {
> @@ -56,9 +52,6 @@ rte_seqcount_init(rte_seqcount_t *seqcount)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Begin a read-side critical section.
>    *
>    * A call to this function marks the beginning of a read-side critical
> @@ -100,8 +93,6 @@ rte_seqcount_init(rte_seqcount_t *seqcount)
>    *
>    * @see rte_seqcount_read_retry()
>    */
> -
> -__rte_experimental
>   static inline uint32_t
>   rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
>   {
> @@ -113,9 +104,6 @@ rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * End a read-side critical section.
>    *
>    * A call to this function marks the end of a read-side critical
> @@ -145,8 +133,6 @@ rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
>    *
>    * @see rte_seqcount_read_begin()
>    */
> -
> -__rte_experimental
>   static inline bool
>   rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
>   {
> @@ -171,9 +157,6 @@ rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Begin a write-side critical section.
>    *
>    * A call to this function marks the beginning of a write-side
> @@ -195,8 +178,6 @@ rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
>    *
>    * @see rte_seqcount_write_end()
>    */
> -
> -__rte_experimental
>   static inline void
>   rte_seqcount_write_begin(rte_seqcount_t *seqcount)
>   {
> @@ -213,9 +194,6 @@ rte_seqcount_write_begin(rte_seqcount_t *seqcount)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * End a write-side critical section.
>    *
>    * A call to this function marks the end of the write-side critical
> @@ -227,7 +205,6 @@ rte_seqcount_write_begin(rte_seqcount_t *seqcount)
>    *
>    * @see rte_seqcount_write_begin()
>    */
> -__rte_experimental
>   static inline void
>   rte_seqcount_write_end(rte_seqcount_t *seqcount)
>   {
> diff --git a/lib/eal/include/rte_seqlock.h b/lib/eal/include/rte_seqlock.h
> index fcbb9c586668..589c98188529 100644
> --- a/lib/eal/include/rte_seqlock.h
> +++ b/lib/eal/include/rte_seqlock.h
> @@ -114,9 +114,6 @@ typedef struct {
>   	}
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Initialize the seqlock.
>    *
>    * This function initializes the seqlock, and leaves the writer-side
> @@ -125,7 +122,6 @@ typedef struct {
>    * @param seqlock
>    *   A pointer to the seqlock.
>    */
> -__rte_experimental
>   static inline void
>   rte_seqlock_init(rte_seqlock_t *seqlock)
>   {
> @@ -134,9 +130,6 @@ rte_seqlock_init(rte_seqlock_t *seqlock)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Begin a read-side critical section.
>    *
>    * See rte_seqcount_read_retry() for details.
> @@ -150,8 +143,6 @@ rte_seqlock_init(rte_seqlock_t *seqlock)
>    * @see rte_seqlock_read_retry()
>    * @see rte_seqcount_read_retry()
>    */
> -
> -__rte_experimental
>   static inline uint32_t
>   rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
>   {
> @@ -159,9 +150,6 @@ rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * End a read-side critical section.
>    *
>    * See rte_seqcount_read_retry() for details.
> @@ -177,7 +165,6 @@ rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
>    *
>    * @see rte_seqlock_read_begin()
>    */
> -__rte_experimental
>   static inline bool
>   rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
>   {
> @@ -185,9 +172,6 @@ rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Begin a write-side critical section.
>    *
>    * A call to this function acquires the write lock associated @p
> @@ -212,7 +196,6 @@ rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
>    *
>    * @see rte_seqlock_write_unlock()
>    */
> -__rte_experimental
>   static inline void
>   rte_seqlock_write_lock(rte_seqlock_t *seqlock)
>   	__rte_exclusive_lock_function(&seqlock->lock)
> @@ -224,9 +207,6 @@ rte_seqlock_write_lock(rte_seqlock_t *seqlock)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * End a write-side critical section.
>    *
>    * A call to this function marks the end of the write-side critical
> @@ -238,7 +218,6 @@ rte_seqlock_write_lock(rte_seqlock_t *seqlock)
>    *
>    * @see rte_seqlock_write_lock()
>    */
> -__rte_experimental
>   static inline void
>   rte_seqlock_write_unlock(rte_seqlock_t *seqlock)
>   	__rte_unlock_function(&seqlock->lock)

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

* Re: [PATCH 01/15] eal: make bitops a stable API
  2023-08-09 17:58   ` Tyler Retzlaff
@ 2023-08-09 20:07     ` Stephen Hemminger
  2023-08-09 21:59       ` Tyler Retzlaff
  0 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-08-09 20:07 UTC (permalink / raw)
  To: Tyler Retzlaff; +Cc: dev, Cristian Dumitrescu, Joyce Kong, David Marchand

On Wed, 9 Aug 2023 10:58:51 -0700
Tyler Retzlaff <roretzla@linux.microsoft.com> wrote:

> On Wed, Aug 09, 2023 at 09:42:53AM -0700, Stephen Hemminger wrote:
> > These were added in 20.05 release.
> > 
> > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > ---  
> 
> can i ask that this patch be held until this series is merged?

I expect these mostly will go in after other changes are done.

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

* Re: [PATCH 01/15] eal: make bitops a stable API
  2023-08-09 20:07     ` Stephen Hemminger
@ 2023-08-09 21:59       ` Tyler Retzlaff
  0 siblings, 0 replies; 47+ messages in thread
From: Tyler Retzlaff @ 2023-08-09 21:59 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev, Cristian Dumitrescu, Joyce Kong, David Marchand

On Wed, Aug 09, 2023 at 01:07:10PM -0700, Stephen Hemminger wrote:
> On Wed, 9 Aug 2023 10:58:51 -0700
> Tyler Retzlaff <roretzla@linux.microsoft.com> wrote:
> 
> > On Wed, Aug 09, 2023 at 09:42:53AM -0700, Stephen Hemminger wrote:
> > > These were added in 20.05 release.
> > > 
> > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > > ---  
> > 
> > can i ask that this patch be held until this series is merged?
> 
> I expect these mostly will go in after other changes are done.

thanks!

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

* Re: [PATCH 04/15] eal: make rte_version_XXX API's stable
  2023-08-09 16:42 ` [PATCH 04/15] eal: make rte_version_XXX " Stephen Hemminger
@ 2023-08-10  8:24   ` Bruce Richardson
  0 siblings, 0 replies; 47+ messages in thread
From: Bruce Richardson @ 2023-08-10  8:24 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

On Wed, Aug 09, 2023 at 09:42:56AM -0700, Stephen Hemminger wrote:
> The subparts of rte_version were added in 2020 and
> can now be marked stable.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
Acked-by: Bruce Richardson <bruce.richardson@intel.com>

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

* RE: [PATCH 06/15] eal: make rte_service_lcore_may_be_active stable
  2023-08-09 16:42 ` [PATCH 06/15] eal: make rte_service_lcore_may_be_active stable Stephen Hemminger
@ 2023-08-10  9:08   ` Van Haaren, Harry
  0 siblings, 0 replies; 47+ messages in thread
From: Van Haaren, Harry @ 2023-08-10  9:08 UTC (permalink / raw)
  To: Stephen Hemminger, dev

> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Wednesday, August 9, 2023 5:43 PM
> To: dev@dpdk.org
> Cc: Stephen Hemminger <stephen@networkplumber.org>; Van Haaren, Harry
> <harry.van.haaren@intel.com>
> Subject: [PATCH 06/15] eal: make rte_service_lcore_may_be_active stable
> 
> This API was added in 2020.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

It looks like parts of the "rte_drand" patch accidentally got into the service-cores patch, with that minor update;

Acked-by: Harry van Haaren <harry.van.haaren@intel.com>

<snip>
Below diffs to 5/15 rte_drand patch.

> diff --git a/lib/eal/version.map b/lib/eal/version.map
> index e6d2fda95770..2e50d6857d26 100644
> --- a/lib/eal/version.map
> +++ b/lib/eal/version.map
> @@ -58,6 +58,7 @@ DPDK_24 {
>  	rte_devargs_parsef;
>  	rte_devargs_remove;
>  	rte_devargs_type_count;
> +	rte_drand;
>  	rte_driver_name;
>  	rte_dump_physmem_layout;
>  	rte_dump_stack;

<snip>

> @@ -400,7 +401,6 @@ EXPERIMENTAL {
>  	rte_intr_type_set;
> 
>  	# added in 22.07
> -	rte_drand;
>  	rte_thread_get_affinity_by_id;
>  	rte_thread_get_priority;
>  	rte_thread_self;
> --
> 2.39.2


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

* Re: [PATCH 00/15] eal: mark older API's stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (14 preceding siblings ...)
  2023-08-09 16:43 ` [PATCH 15/15] eal: mark rte_vect simd bandwidth API as stable Stephen Hemminger
@ 2023-10-18 19:29 ` David Marchand
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
  16 siblings, 0 replies; 47+ messages in thread
From: David Marchand @ 2023-10-18 19:29 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

On Wed, Aug 9, 2023 at 6:44 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> About 80 function in EAL were marked experimental
> and should have been made stable by now.
>
> Stephen Hemminger (15):
>   eal: make bitops a stable API
>   eal: mark rte_dev API's as stable
>   eal: make rte_class API's stable
>   eal: make rte_version_XXX API's stable
>   eal: make rte_drand a stable API
>   eal: make rte_service_lcore_may_be_active stable
>   eal: make rte_devargs_reset stable
>   eal: make pflock API stable
>   eal: make seqcount and seqlock stable
>   eal: mark rte_intr_XXX API's as stable
>   eal: mark rte_atomic128_cmp_exchange as stable
>   eal: make most rte_thread API's stable
>   eal: mark rte_power API's stable
>   eal: mark rte_eal_vfio_get_token stable
>   eal: mark rte_vect simd bandwidth API as stable

This needs some rebasing too.


-- 
David Marchand


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

* [PATCH v2 00/14] eal: mark older API's as stable
  2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
                   ` (15 preceding siblings ...)
  2023-10-18 19:29 ` [PATCH 00/15] eal: mark older API's stable David Marchand
@ 2023-10-20 21:41 ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 01/14] eal: make bitops a stable API Stephen Hemminger
                     ` (15 more replies)
  16 siblings, 16 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

About 80 function in EAL were marked experimental
and should have been made stable by now.

v2 - rebase and fix some bits in wrong patch

Stephen Hemminger (14):
  eal: make bitops a stable API
  eal: mark rte_dev API's as stable
  eal: make rte_class API's stable
  eal: make rte_drand a stable API
  eal: make rte_service_lcore_may_be_active stable
  eal: make rte_devargs_reset stable
  eal: make pflock API stable
  eal: make seqcount and seqlock stable
  eal: mark rte_intr_XXX API's as stable
  eal: mark rte_atomic128_cmp_exchange as stable
  eal: mark rte_power API's stable
  eal: mark rte_eal_vfio_get_token stable
  eal: mark rte_vect simd bandwidth API as stable
  eal: make rte_version API's stable

 lib/eal/arm/include/rte_atomic_64.h           |  1 -
 lib/eal/include/generic/rte_atomic.h          |  1 -
 .../include/generic/rte_power_intrinsics.h    | 16 ----
 lib/eal/include/generic/rte_vect.h            |  8 --
 lib/eal/include/rte_bitmap.h                  |  8 --
 lib/eal/include/rte_bitops.h                  | 40 --------
 lib/eal/include/rte_class.h                   |  4 -
 lib/eal/include/rte_dev.h                     | 32 -------
 lib/eal/include/rte_devargs.h                 |  1 -
 lib/eal/include/rte_eal.h                     |  4 -
 lib/eal/include/rte_interrupts.h              | 28 ------
 lib/eal/include/rte_pflock.h                  | 20 ----
 lib/eal/include/rte_random.h                  |  4 -
 lib/eal/include/rte_seqcount.h                | 23 -----
 lib/eal/include/rte_seqlock.h                 | 21 ----
 lib/eal/include/rte_service.h                 |  1 -
 lib/eal/include/rte_version.h                 |  6 --
 lib/eal/version.map                           | 96 ++++++++-----------
 lib/eal/x86/include/rte_atomic_64.h           |  1 -
 19 files changed, 38 insertions(+), 277 deletions(-)

-- 
2.39.2


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

* [PATCH v2 01/14] eal: make bitops a stable API
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-23  2:31     ` Joyce Kong
  2023-10-20 21:41   ` [PATCH v2 02/14] eal: mark rte_dev API's as stable Stephen Hemminger
                     ` (14 subsequent siblings)
  15 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Cristian Dumitrescu, Joyce Kong

These were added in 20.05 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_bitmap.h |  8 --------
 lib/eal/include/rte_bitops.h | 40 ------------------------------------
 2 files changed, 48 deletions(-)

diff --git a/lib/eal/include/rte_bitmap.h b/lib/eal/include/rte_bitmap.h
index 46a822768d50..ec819595624c 100644
--- a/lib/eal/include/rte_bitmap.h
+++ b/lib/eal/include/rte_bitmap.h
@@ -203,9 +203,6 @@ rte_bitmap_init(uint32_t n_bits, uint8_t *mem, uint32_t mem_size)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Bitmap clear slab overhead bits.
  *
  * @param slabs
@@ -215,7 +212,6 @@ rte_bitmap_init(uint32_t n_bits, uint8_t *mem, uint32_t mem_size)
  * @param pos
  *   The start bit position in the slabs to be cleared.
  */
-__rte_experimental
 static inline void
 __rte_bitmap_clear_slab_overhead_bits(uint64_t *slabs, uint32_t slab_size,
 				      uint32_t pos)
@@ -235,9 +231,6 @@ __rte_bitmap_clear_slab_overhead_bits(uint64_t *slabs, uint32_t slab_size,
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Bitmap initialization with all bits set
  *
  * @param n_bits
@@ -249,7 +242,6 @@ __rte_bitmap_clear_slab_overhead_bits(uint64_t *slabs, uint32_t slab_size,
  * @return
  *   Handle to bitmap instance.
  */
-__rte_experimental
 static inline struct rte_bitmap *
 rte_bitmap_init_with_all_set(uint32_t n_bits, uint8_t *mem, uint32_t mem_size)
 {
diff --git a/lib/eal/include/rte_bitops.h b/lib/eal/include/rte_bitops.h
index 6b8ae8d3acf6..29d24b3a780e 100644
--- a/lib/eal/include/rte_bitops.h
+++ b/lib/eal/include/rte_bitops.h
@@ -42,9 +42,6 @@ extern "C" {
 /*------------------------ 32-bit relaxed operations ------------------------*/
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Get the target bit from a 32-bit value without memory ordering.
  *
  * @param nr
@@ -54,7 +51,6 @@ extern "C" {
  * @return
  *   The target bit.
  */
-__rte_experimental
 static inline uint32_t
 rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -65,9 +61,6 @@ rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Set the target bit in a 32-bit value to 1 without memory ordering.
  *
  * @param nr
@@ -75,7 +68,6 @@ rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t *addr)
  * @param addr
  *   The address holding the bit.
  */
-__rte_experimental
 static inline void
 rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -86,9 +78,6 @@ rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Clear the target bit in a 32-bit value to 0 without memory ordering.
  *
  * @param nr
@@ -96,7 +85,6 @@ rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t *addr)
  * @param addr
  *   The address holding the bit.
  */
-__rte_experimental
 static inline void
 rte_bit_relaxed_clear32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -107,9 +95,6 @@ rte_bit_relaxed_clear32(unsigned int nr, volatile uint32_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Return the original bit from a 32-bit value, then set it to 1 without
  * memory ordering.
  *
@@ -120,7 +105,6 @@ rte_bit_relaxed_clear32(unsigned int nr, volatile uint32_t *addr)
  * @return
  *   The original bit.
  */
-__rte_experimental
 static inline uint32_t
 rte_bit_relaxed_test_and_set32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -133,9 +117,6 @@ rte_bit_relaxed_test_and_set32(unsigned int nr, volatile uint32_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Return the original bit from a 32-bit value, then clear it to 0 without
  * memory ordering.
  *
@@ -146,7 +127,6 @@ rte_bit_relaxed_test_and_set32(unsigned int nr, volatile uint32_t *addr)
  * @return
  *   The original bit.
  */
-__rte_experimental
 static inline uint32_t
 rte_bit_relaxed_test_and_clear32(unsigned int nr, volatile uint32_t *addr)
 {
@@ -161,9 +141,6 @@ rte_bit_relaxed_test_and_clear32(unsigned int nr, volatile uint32_t *addr)
 /*------------------------ 64-bit relaxed operations ------------------------*/
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Get the target bit from a 64-bit value without memory ordering.
  *
  * @param nr
@@ -173,7 +150,6 @@ rte_bit_relaxed_test_and_clear32(unsigned int nr, volatile uint32_t *addr)
  * @return
  *   The target bit.
  */
-__rte_experimental
 static inline uint64_t
 rte_bit_relaxed_get64(unsigned int nr, volatile uint64_t *addr)
 {
@@ -184,9 +160,6 @@ rte_bit_relaxed_get64(unsigned int nr, volatile uint64_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Set the target bit in a 64-bit value to 1 without memory ordering.
  *
  * @param nr
@@ -194,7 +167,6 @@ rte_bit_relaxed_get64(unsigned int nr, volatile uint64_t *addr)
  * @param addr
  *   The address holding the bit.
  */
-__rte_experimental
 static inline void
 rte_bit_relaxed_set64(unsigned int nr, volatile uint64_t *addr)
 {
@@ -205,9 +177,6 @@ rte_bit_relaxed_set64(unsigned int nr, volatile uint64_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Clear the target bit in a 64-bit value to 0 without memory ordering.
  *
  * @param nr
@@ -215,7 +184,6 @@ rte_bit_relaxed_set64(unsigned int nr, volatile uint64_t *addr)
  * @param addr
  *   The address holding the bit.
  */
-__rte_experimental
 static inline void
 rte_bit_relaxed_clear64(unsigned int nr, volatile uint64_t *addr)
 {
@@ -226,9 +194,6 @@ rte_bit_relaxed_clear64(unsigned int nr, volatile uint64_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Return the original bit from a 64-bit value, then set it to 1 without
  * memory ordering.
  *
@@ -239,7 +204,6 @@ rte_bit_relaxed_clear64(unsigned int nr, volatile uint64_t *addr)
  * @return
  *   The original bit.
  */
-__rte_experimental
 static inline uint64_t
 rte_bit_relaxed_test_and_set64(unsigned int nr, volatile uint64_t *addr)
 {
@@ -252,9 +216,6 @@ rte_bit_relaxed_test_and_set64(unsigned int nr, volatile uint64_t *addr)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Return the original bit from a 64-bit value, then clear it to 0 without
  * memory ordering.
  *
@@ -265,7 +226,6 @@ rte_bit_relaxed_test_and_set64(unsigned int nr, volatile uint64_t *addr)
  * @return
  *   The original bit.
  */
-__rte_experimental
 static inline uint64_t
 rte_bit_relaxed_test_and_clear64(unsigned int nr, volatile uint64_t *addr)
 {
-- 
2.39.2


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

* [PATCH v2 02/14] eal: mark rte_dev API's as stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 01/14] eal: make bitops a stable API Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 03/14] eal: make rte_class API's stable Stephen Hemminger
                     ` (13 subsequent siblings)
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

These have been around since 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_dev.h | 32 --------------------------------
 lib/eal/version.map       | 28 +++++++++++-----------------
 2 files changed, 11 insertions(+), 49 deletions(-)

diff --git a/lib/eal/include/rte_dev.h b/lib/eal/include/rte_dev.h
index 8568535ac04b..86ef2f54235d 100644
--- a/lib/eal/include/rte_dev.h
+++ b/lib/eal/include/rte_dev.h
@@ -341,7 +341,6 @@ typedef void *(*rte_dev_iterate_t)(const void *start,
  *   0 on successful initialization.
  *   <0 on error.
  */
-__rte_experimental
 int
 rte_dev_iterator_init(struct rte_dev_iterator *it, const char *str);
 
@@ -361,7 +360,6 @@ rte_dev_iterator_init(struct rte_dev_iterator *it, const char *str);
  *   NULL if an error occurred (rte_errno is set).
  *   NULL if no device could be found (rte_errno is not set).
  */
-__rte_experimental
 struct rte_device *
 rte_dev_iterator_next(struct rte_dev_iterator *it);
 
@@ -372,9 +370,6 @@ rte_dev_iterator_next(struct rte_dev_iterator *it);
 	     dev = rte_dev_iterator_next(it))
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * It registers the callback for the specific device.
  * Multiple callbacks can be registered at the same time.
  *
@@ -390,16 +385,12 @@ rte_dev_iterator_next(struct rte_dev_iterator *it);
  *  - On success, zero.
  *  - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_event_callback_register(const char *device_name,
 				rte_dev_event_cb_fn cb_fn,
 				void *cb_arg);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * It unregisters the callback according to the specified device.
  *
  * @param device_name
@@ -415,16 +406,12 @@ rte_dev_event_callback_register(const char *device_name,
  *  - On success, return the number of callback entities removed.
  *  - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_event_callback_unregister(const char *device_name,
 				  rte_dev_event_cb_fn cb_fn,
 				  void *cb_arg);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Executes all the user application registered callbacks for
  * the specific device.
  *
@@ -433,64 +420,47 @@ rte_dev_event_callback_unregister(const char *device_name,
  * @param event
  *  the device event type.
  */
-__rte_experimental
 void
 rte_dev_event_callback_process(const char *device_name,
 			       enum rte_dev_event_type event);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Start the device event monitoring.
  *
  * @return
  *   - On success, zero.
  *   - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_event_monitor_start(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Stop the device event monitoring.
  *
  * @return
  *   - On success, zero.
  *   - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_event_monitor_stop(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Enable hotplug handling for devices.
  *
  * @return
  *   - On success, zero.
  *   - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_hotplug_handle_enable(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Disable hotplug handling for devices.
  *
  * @return
  *   - On success, zero.
  *   - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_dev_hotplug_handle_disable(void);
 
@@ -514,7 +484,6 @@ rte_dev_hotplug_handle_disable(void);
  *	0 if mapping was successful.
  *	Negative value and rte_errno is set otherwise.
  */
-__rte_experimental
 int
 rte_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, size_t len);
 
@@ -538,7 +507,6 @@ rte_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, size_t len);
  *	0 if un-mapping was successful.
  *	Negative value and rte_errno is set otherwise.
  */
-__rte_experimental
 int
 rte_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova,
 		  size_t len);
diff --git a/lib/eal/version.map b/lib/eal/version.map
index e00a844805bb..01ff887358fa 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -28,8 +28,19 @@ DPDK_24 {
 	rte_dev_bus;
 	rte_dev_bus_info;
 	rte_dev_devargs;
+	rte_dev_dma_map;
+	rte_dev_dma_unmap;
 	rte_dev_driver;
+	rte_dev_event_callback_process;
+	rte_dev_event_callback_register;
+	rte_dev_event_callback_unregister;
+	rte_dev_event_monitor_start;
+	rte_dev_event_monitor_stop;
+	rte_dev_hotplug_handle_disable;
+	rte_dev_hotplug_handle_enable;
 	rte_dev_is_probed;
+	rte_dev_iterator_init;
+	rte_dev_iterator_next;
 	rte_dev_name;
 	rte_dev_numa_node;
 	rte_dev_probe;
@@ -309,28 +320,11 @@ DPDK_24 {
 EXPERIMENTAL {
 	global:
 
-	# added in 18.05
-	rte_dev_event_callback_register;
-	rte_dev_event_callback_unregister;
-	rte_dev_event_monitor_start;
-	rte_dev_event_monitor_stop;
-
 	# added in 18.08
 	rte_class_find;
 	rte_class_find_by_name;
 	rte_class_register;
 	rte_class_unregister;
-	rte_dev_iterator_init;
-	rte_dev_iterator_next;
-
-	# added in 18.11
-	rte_dev_event_callback_process;
-	rte_dev_hotplug_handle_disable;
-	rte_dev_hotplug_handle_enable;
-
-	# added in 19.05
-	rte_dev_dma_map;
-	rte_dev_dma_unmap;
 
 	# added in 20.05
 	__rte_eal_trace_generic_double;
-- 
2.39.2


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

* [PATCH v2 03/14] eal: make rte_class API's stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 01/14] eal: make bitops a stable API Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 02/14] eal: mark rte_dev API's as stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 04/14] eal: make rte_drand a stable API Stephen Hemminger
                     ` (12 subsequent siblings)
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

These API's have been around for a while.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_class.h |  4 ----
 lib/eal/version.map         | 10 ++++------
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/lib/eal/include/rte_class.h b/lib/eal/include/rte_class.h
index 47b1764e7bf9..487d1abcde72 100644
--- a/lib/eal/include/rte_class.h
+++ b/lib/eal/include/rte_class.h
@@ -76,7 +76,6 @@ typedef int (*rte_class_cmp_t)(const struct rte_class *cls, const void *data);
  * @return
  *	 A pointer to a rte_class structure or NULL in case no class matches
  */
-__rte_experimental
 struct rte_class *
 rte_class_find(const struct rte_class *start, rte_class_cmp_t cmp,
 	       const void *data);
@@ -84,7 +83,6 @@ rte_class_find(const struct rte_class *start, rte_class_cmp_t cmp,
 /**
  * Find the registered class for a given name.
  */
-__rte_experimental
 struct rte_class *
 rte_class_find_by_name(const char *name);
 
@@ -95,7 +93,6 @@ rte_class_find_by_name(const char *name);
  *   A pointer to a rte_class structure describing the class
  *   to be registered.
  */
-__rte_experimental
 void rte_class_register(struct rte_class *cls);
 
 /**
@@ -105,7 +102,6 @@ void rte_class_register(struct rte_class *cls);
  *   A pointer to a rte_class structure describing the class
  *   to be unregistered.
  */
-__rte_experimental
 void rte_class_unregister(struct rte_class *cls);
 
 /**
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 01ff887358fa..5fd7ceec94fb 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -17,6 +17,10 @@ DPDK_24 {
 	rte_bus_scan;
 	rte_calloc;
 	rte_calloc_socket;
+	rte_class_find;
+	rte_class_find_by_name;
+	rte_class_register;
+	rte_class_unregister;
 	rte_cpu_get_flag_enabled;
 	rte_cpu_get_flag_name;
 	rte_cpu_is_supported; # WINDOWS_NO_EXPORT
@@ -320,12 +324,6 @@ DPDK_24 {
 EXPERIMENTAL {
 	global:
 
-	# added in 18.08
-	rte_class_find;
-	rte_class_find_by_name;
-	rte_class_register;
-	rte_class_unregister;
-
 	# added in 20.05
 	__rte_eal_trace_generic_double;
 	__rte_eal_trace_generic_float;
-- 
2.39.2


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

* [PATCH v2 04/14] eal: make rte_drand a stable API
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (2 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 03/14] eal: make rte_class API's stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-23 16:12     ` Mattias Rönnblom
  2023-10-20 21:41   ` [PATCH v2 05/14] eal: make rte_service_lcore_may_be_active stable Stephen Hemminger
                     ` (11 subsequent siblings)
  15 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Mattias Rönnblom

This API was added in 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_random.h | 4 ----
 lib/eal/version.map          | 4 +---
 2 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/lib/eal/include/rte_random.h b/lib/eal/include/rte_random.h
index c12eb07ea818..ea74ca020044 100644
--- a/lib/eal/include/rte_random.h
+++ b/lib/eal/include/rte_random.h
@@ -70,9 +70,6 @@ uint64_t
 rte_rand_max(uint64_t upper_bound);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Generates a pseudo-random floating point number.
  *
  * This function returns a non-negative double-precision floating random
@@ -87,7 +84,6 @@ rte_rand_max(uint64_t upper_bound);
  * @return
  *   A pseudo-random value between 0 and 1.0.
  */
-__rte_experimental
 double rte_drand(void);
 
 #ifdef __cplusplus
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 5fd7ceec94fb..edeb7ff518e2 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -57,6 +57,7 @@ DPDK_24 {
 	rte_devargs_parsef;
 	rte_devargs_remove;
 	rte_devargs_type_count;
+	rte_drand;
 	rte_driver_name;
 	rte_dump_physmem_layout;
 	rte_dump_stack;
@@ -395,9 +396,6 @@ EXPERIMENTAL {
 	rte_intr_type_get;
 	rte_intr_type_set;
 
-	# added in 22.07
-	rte_drand;
-
 	# added in 23.03
 	rte_lcore_register_usage_cb;
 	__rte_eal_trace_generic_blob;
-- 
2.39.2


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

* [PATCH v2 05/14] eal: make rte_service_lcore_may_be_active stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (3 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 04/14] eal: make rte_drand a stable API Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 06/14] eal: make rte_devargs_reset stable Stephen Hemminger
                     ` (10 subsequent siblings)
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Harry van Haaren

This API was added in 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
---
 lib/eal/include/rte_service.h | 1 -
 lib/eal/version.map           | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/eal/include/rte_service.h b/lib/eal/include/rte_service.h
index a77f33be488c..da5e246f7abf 100644
--- a/lib/eal/include/rte_service.h
+++ b/lib/eal/include/rte_service.h
@@ -275,7 +275,6 @@ int32_t rte_service_lcore_stop(uint32_t lcore_id);
  * @retval 1 Service thread is in the service core polling loop.
  * @retval -EINVAL Invalid *lcore_id* provided.
  */
-__rte_experimental
 int32_t rte_service_lcore_may_be_active(uint32_t lcore_id);
 
 /**
diff --git a/lib/eal/version.map b/lib/eal/version.map
index edeb7ff518e2..89feb98fea7c 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -249,6 +249,7 @@ DPDK_24 {
 	rte_service_lcore_count_services;
 	rte_service_lcore_del;
 	rte_service_lcore_list;
+	rte_service_lcore_may_be_active;
 	rte_service_lcore_reset_all;
 	rte_service_lcore_start;
 	rte_service_lcore_stop;
@@ -366,7 +367,6 @@ EXPERIMENTAL {
 	# added in 20.11
 	__rte_eal_trace_generic_size_t; # WINDOWS_NO_EXPORT
 	rte_cpu_get_intrinsics_support; # WINDOWS_NO_EXPORT
-	rte_service_lcore_may_be_active;
 	rte_vect_get_max_simd_bitwidth;
 	rte_vect_set_max_simd_bitwidth;
 
-- 
2.39.2


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

* [PATCH v2 06/14] eal: make rte_devargs_reset stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (4 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 05/14] eal: make rte_service_lcore_may_be_active stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 07/14] eal: make pflock API stable Stephen Hemminger
                     ` (9 subsequent siblings)
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

Was added in 20.05 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_devargs.h | 1 -
 lib/eal/version.map           | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/eal/include/rte_devargs.h b/lib/eal/include/rte_devargs.h
index 91267981b1de..add8032e73cb 100644
--- a/lib/eal/include/rte_devargs.h
+++ b/lib/eal/include/rte_devargs.h
@@ -168,7 +168,6 @@ __rte_format_printf(2, 0);
  * @param da
  *   The devargs structure holding the device information.
  */
-__rte_experimental
 void
 rte_devargs_reset(struct rte_devargs *da);
 
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 89feb98fea7c..d7f6ea24581e 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -56,6 +56,7 @@ DPDK_24 {
 	rte_devargs_parse;
 	rte_devargs_parsef;
 	rte_devargs_remove;
+	rte_devargs_reset;
 	rte_devargs_type_count;
 	rte_drand;
 	rte_driver_name;
@@ -376,7 +377,6 @@ EXPERIMENTAL {
 	rte_power_pause; # WINDOWS_NO_EXPORT
 
 	# added in 21.05
-	rte_devargs_reset;
 	rte_intr_callback_unregister_sync;
 	rte_version_minor;
 	rte_version_month;
-- 
2.39.2


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

* [PATCH v2 07/14] eal: make pflock API stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (5 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 06/14] eal: make rte_devargs_reset stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 08/14] eal: make seqcount and seqlock stable Stephen Hemminger
                     ` (8 subsequent siblings)
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

Added in 21.11 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_pflock.h | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/lib/eal/include/rte_pflock.h b/lib/eal/include/rte_pflock.h
index 553504bb6dd9..9aaf56f715cc 100644
--- a/lib/eal/include/rte_pflock.h
+++ b/lib/eal/include/rte_pflock.h
@@ -80,15 +80,11 @@ typedef struct rte_pflock rte_pflock_t;
 #define RTE_PFLOCK_INITIALIZER {  }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Initialize the pflock to an unlocked state.
  *
  * @param pf
  *   A pointer to the pflock.
  */
-__rte_experimental
 static inline void
 rte_pflock_init(struct rte_pflock *pf)
 {
@@ -99,15 +95,11 @@ rte_pflock_init(struct rte_pflock *pf)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Take a pflock for read.
  *
  * @param pf
  *   A pointer to a pflock structure.
  */
-__rte_experimental
 static inline void
 rte_pflock_read_lock(rte_pflock_t *pf)
 {
@@ -127,15 +119,11 @@ rte_pflock_read_lock(rte_pflock_t *pf)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Release a pflock locked for reading.
  *
  * @param pf
  *   A pointer to the pflock structure.
  */
-__rte_experimental
 static inline void
 rte_pflock_read_unlock(rte_pflock_t *pf)
 {
@@ -143,15 +131,11 @@ rte_pflock_read_unlock(rte_pflock_t *pf)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Take the pflock for write.
  *
  * @param pf
  *   A pointer to the pflock structure.
  */
-__rte_experimental
 static inline void
 rte_pflock_write_lock(rte_pflock_t *pf)
 {
@@ -181,15 +165,11 @@ rte_pflock_write_lock(rte_pflock_t *pf)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Release a pflock held for writing.
  *
  * @param pf
  *   A pointer to a pflock structure.
  */
-__rte_experimental
 static inline void
 rte_pflock_write_unlock(rte_pflock_t *pf)
 {
-- 
2.39.2


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

* [PATCH v2 08/14] eal: make seqcount and seqlock stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (6 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 07/14] eal: make pflock API stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-23 16:14     ` Mattias Rönnblom
  2023-10-20 21:41   ` [PATCH v2 09/14] eal: mark rte_intr_XXX API's as stable Stephen Hemminger
                     ` (7 subsequent siblings)
  15 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Mattias Rönnblom

These were add back in 22.07 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
---
 lib/eal/include/rte_seqcount.h | 23 -----------------------
 lib/eal/include/rte_seqlock.h  | 21 ---------------------
 2 files changed, 44 deletions(-)

diff --git a/lib/eal/include/rte_seqcount.h b/lib/eal/include/rte_seqcount.h
index 4f9cefb33862..ff8985310377 100644
--- a/lib/eal/include/rte_seqcount.h
+++ b/lib/eal/include/rte_seqcount.h
@@ -41,15 +41,11 @@ typedef struct {
 #define RTE_SEQCOUNT_INITIALIZER { .sn = 0 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Initialize the sequence counter.
  *
  * @param seqcount
  *   A pointer to the sequence counter.
  */
-__rte_experimental
 static inline void
 rte_seqcount_init(rte_seqcount_t *seqcount)
 {
@@ -57,9 +53,6 @@ rte_seqcount_init(rte_seqcount_t *seqcount)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Begin a read-side critical section.
  *
  * A call to this function marks the beginning of a read-side critical
@@ -101,8 +94,6 @@ rte_seqcount_init(rte_seqcount_t *seqcount)
  *
  * @see rte_seqcount_read_retry()
  */
-
-__rte_experimental
 static inline uint32_t
 rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
 {
@@ -114,9 +105,6 @@ rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * End a read-side critical section.
  *
  * A call to this function marks the end of a read-side critical
@@ -146,8 +134,6 @@ rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
  *
  * @see rte_seqcount_read_begin()
  */
-
-__rte_experimental
 static inline bool
 rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
 {
@@ -172,9 +158,6 @@ rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Begin a write-side critical section.
  *
  * A call to this function marks the beginning of a write-side
@@ -196,8 +179,6 @@ rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
  *
  * @see rte_seqcount_write_end()
  */
-
-__rte_experimental
 static inline void
 rte_seqcount_write_begin(rte_seqcount_t *seqcount)
 {
@@ -214,9 +195,6 @@ rte_seqcount_write_begin(rte_seqcount_t *seqcount)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * End a write-side critical section.
  *
  * A call to this function marks the end of the write-side critical
@@ -228,7 +206,6 @@ rte_seqcount_write_begin(rte_seqcount_t *seqcount)
  *
  * @see rte_seqcount_write_begin()
  */
-__rte_experimental
 static inline void
 rte_seqcount_write_end(rte_seqcount_t *seqcount)
 {
diff --git a/lib/eal/include/rte_seqlock.h b/lib/eal/include/rte_seqlock.h
index fcbb9c586668..589c98188529 100644
--- a/lib/eal/include/rte_seqlock.h
+++ b/lib/eal/include/rte_seqlock.h
@@ -114,9 +114,6 @@ typedef struct {
 	}
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Initialize the seqlock.
  *
  * This function initializes the seqlock, and leaves the writer-side
@@ -125,7 +122,6 @@ typedef struct {
  * @param seqlock
  *   A pointer to the seqlock.
  */
-__rte_experimental
 static inline void
 rte_seqlock_init(rte_seqlock_t *seqlock)
 {
@@ -134,9 +130,6 @@ rte_seqlock_init(rte_seqlock_t *seqlock)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Begin a read-side critical section.
  *
  * See rte_seqcount_read_retry() for details.
@@ -150,8 +143,6 @@ rte_seqlock_init(rte_seqlock_t *seqlock)
  * @see rte_seqlock_read_retry()
  * @see rte_seqcount_read_retry()
  */
-
-__rte_experimental
 static inline uint32_t
 rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
 {
@@ -159,9 +150,6 @@ rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * End a read-side critical section.
  *
  * See rte_seqcount_read_retry() for details.
@@ -177,7 +165,6 @@ rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
  *
  * @see rte_seqlock_read_begin()
  */
-__rte_experimental
 static inline bool
 rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
 {
@@ -185,9 +172,6 @@ rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Begin a write-side critical section.
  *
  * A call to this function acquires the write lock associated @p
@@ -212,7 +196,6 @@ rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
  *
  * @see rte_seqlock_write_unlock()
  */
-__rte_experimental
 static inline void
 rte_seqlock_write_lock(rte_seqlock_t *seqlock)
 	__rte_exclusive_lock_function(&seqlock->lock)
@@ -224,9 +207,6 @@ rte_seqlock_write_lock(rte_seqlock_t *seqlock)
 }
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * End a write-side critical section.
  *
  * A call to this function marks the end of the write-side critical
@@ -238,7 +218,6 @@ rte_seqlock_write_lock(rte_seqlock_t *seqlock)
  *
  * @see rte_seqlock_write_lock()
  */
-__rte_experimental
 static inline void
 rte_seqlock_write_unlock(rte_seqlock_t *seqlock)
 	__rte_unlock_function(&seqlock->lock)
-- 
2.39.2


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

* [PATCH v2 09/14] eal: mark rte_intr_XXX API's as stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (7 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 08/14] eal: make seqcount and seqlock stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 10/14] eal: mark rte_atomic128_cmp_exchange " Stephen Hemminger
                     ` (6 subsequent siblings)
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Harman Kalra

These were added back in 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_interrupts.h | 28 ----------------------------
 lib/eal/version.map              | 14 +++++++-------
 2 files changed, 7 insertions(+), 35 deletions(-)

diff --git a/lib/eal/include/rte_interrupts.h b/lib/eal/include/rte_interrupts.h
index bcafdd58a912..1b9a0b2a78f3 100644
--- a/lib/eal/include/rte_interrupts.h
+++ b/lib/eal/include/rte_interrupts.h
@@ -127,9 +127,6 @@ rte_intr_callback_unregister_pending(const struct rte_intr_handle *intr_handle,
 				rte_intr_unregister_callback_fn ucb_fn);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Loop until rte_intr_callback_unregister() succeeds.
  * After a call to this function,
  * the callback provided by the specified interrupt handle is unregistered.
@@ -146,7 +143,6 @@ rte_intr_callback_unregister_pending(const struct rte_intr_handle *intr_handle,
  *  - On success, return the number of callback entities removed.
  *  - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_intr_callback_unregister_sync(const struct rte_intr_handle *intr_handle,
 				rte_intr_callback_fn cb, void *cb_arg);
@@ -201,9 +197,6 @@ int rte_intr_ack(const struct rte_intr_handle *intr_handle);
 int rte_thread_is_intr(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * It allocates memory for interrupt instance. API takes flag as an argument
  * which define from where memory should be allocated i.e. using DPDK memory
  * management library APIs or normal heap allocation.
@@ -221,28 +214,20 @@ int rte_thread_is_intr(void);
  *  - On success, address of interrupt handle.
  *  - On failure, NULL.
  */
-__rte_experimental
 struct rte_intr_handle *
 rte_intr_instance_alloc(uint32_t flags);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Free the memory allocated for interrupt handle resources.
  *
  * @param intr_handle
  *  Interrupt handle allocated with rte_intr_instance_alloc().
  *  If intr_handle is NULL, no operation is performed.
  */
-__rte_experimental
 void
 rte_intr_instance_free(struct rte_intr_handle *intr_handle);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Set the fd field of interrupt handle with user provided
  * file descriptor.
  *
@@ -255,14 +240,10 @@ rte_intr_instance_free(struct rte_intr_handle *intr_handle);
  *  - On success, zero.
  *  - On failure, a negative value and rte_errno is set.
  */
-__rte_experimental
 int
 rte_intr_fd_set(struct rte_intr_handle *intr_handle, int fd);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Returns the fd field of the given interrupt handle instance.
  *
  * @param intr_handle
@@ -272,14 +253,10 @@ rte_intr_fd_set(struct rte_intr_handle *intr_handle, int fd);
  *  - On success, fd field.
  *  - On failure, a negative value.
  */
-__rte_experimental
 int
 rte_intr_fd_get(const struct rte_intr_handle *intr_handle);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Set the type field of interrupt handle with user provided
  * interrupt type.
  *
@@ -292,15 +269,11 @@ rte_intr_fd_get(const struct rte_intr_handle *intr_handle);
  *  - On success, zero.
  *  - On failure, a negative value and rte_errno is set.
  */
-__rte_experimental
 int
 rte_intr_type_set(struct rte_intr_handle *intr_handle,
 		  enum rte_intr_handle_type type);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Returns the type field of the given interrupt handle instance.
  *
  * @param intr_handle
@@ -310,7 +283,6 @@ rte_intr_type_set(struct rte_intr_handle *intr_handle,
  *  - On success, interrupt type
  *  - On failure, RTE_INTR_HANDLE_UNKNOWN.
  */
-__rte_experimental
 enum rte_intr_handle_type
 rte_intr_type_get(const struct rte_intr_handle *intr_handle);
 
diff --git a/lib/eal/version.map b/lib/eal/version.map
index d7f6ea24581e..0dbd8b0573dd 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -137,8 +137,15 @@ DPDK_24 {
 	rte_intr_callback_register;
 	rte_intr_callback_unregister;
 	rte_intr_callback_unregister_pending;
+	rte_intr_callback_unregister_sync;
 	rte_intr_disable;
 	rte_intr_enable;
+	rte_intr_fd_get;
+	rte_intr_fd_set;
+	rte_intr_instance_alloc;
+	rte_intr_instance_free;
+	rte_intr_type_get;
+	rte_intr_type_set;
 	rte_keepalive_create; # WINDOWS_NO_EXPORT
 	rte_keepalive_dispatch_pings; # WINDOWS_NO_EXPORT
 	rte_keepalive_mark_alive; # WINDOWS_NO_EXPORT
@@ -377,7 +384,6 @@ EXPERIMENTAL {
 	rte_power_pause; # WINDOWS_NO_EXPORT
 
 	# added in 21.05
-	rte_intr_callback_unregister_sync;
 	rte_version_minor;
 	rte_version_month;
 	rte_version_prefix;
@@ -389,12 +395,6 @@ EXPERIMENTAL {
 	rte_power_monitor_multi; # WINDOWS_NO_EXPORT
 
 	# added in 21.11
-	rte_intr_fd_get;
-	rte_intr_fd_set;
-	rte_intr_instance_alloc;
-	rte_intr_instance_free;
-	rte_intr_type_get;
-	rte_intr_type_set;
 
 	# added in 23.03
 	rte_lcore_register_usage_cb;
-- 
2.39.2


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

* [PATCH v2 10/14] eal: mark rte_atomic128_cmp_exchange as stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (8 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 09/14] eal: mark rte_intr_XXX API's as stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-23  3:00     ` Ruifeng Wang
  2023-10-20 21:41   ` [PATCH v2 11/14] eal: mark rte_power API's stable Stephen Hemminger
                     ` (5 subsequent siblings)
  15 siblings, 1 reply; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger, Ruifeng Wang, Bruce Richardson, Konstantin Ananyev

This has been around since 2021.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/arm/include/rte_atomic_64.h  | 1 -
 lib/eal/include/generic/rte_atomic.h | 1 -
 lib/eal/x86/include/rte_atomic_64.h  | 1 -
 3 files changed, 3 deletions(-)

diff --git a/lib/eal/arm/include/rte_atomic_64.h b/lib/eal/arm/include/rte_atomic_64.h
index 75d8ba6092cc..96205e6ad372 100644
--- a/lib/eal/arm/include/rte_atomic_64.h
+++ b/lib/eal/arm/include/rte_atomic_64.h
@@ -94,7 +94,6 @@ __ATOMIC128_CAS_OP(__cas_128_acq_rel, "caspal")
 
 #endif
 
-__rte_experimental
 static inline int
 rte_atomic128_cmp_exchange(rte_int128_t *dst, rte_int128_t *exp,
 		const rte_int128_t *src, unsigned int weak, int success,
diff --git a/lib/eal/include/generic/rte_atomic.h b/lib/eal/include/generic/rte_atomic.h
index db6797e379f3..048b547ea62b 100644
--- a/lib/eal/include/generic/rte_atomic.h
+++ b/lib/eal/include/generic/rte_atomic.h
@@ -1147,7 +1147,6 @@ typedef struct {
  * @return
  *   Non-zero on success; 0 on failure.
  */
-__rte_experimental
 static inline int
 rte_atomic128_cmp_exchange(rte_int128_t *dst,
 			   rte_int128_t *exp,
diff --git a/lib/eal/x86/include/rte_atomic_64.h b/lib/eal/x86/include/rte_atomic_64.h
index 0edee8627224..e968bbf0ce65 100644
--- a/lib/eal/x86/include/rte_atomic_64.h
+++ b/lib/eal/x86/include/rte_atomic_64.h
@@ -182,7 +182,6 @@ static inline void rte_atomic64_clear(rte_atomic64_t *v)
 
 /*------------------------ 128 bit atomic operations -------------------------*/
 
-__rte_experimental
 static inline int
 rte_atomic128_cmp_exchange(rte_int128_t *dst,
 			   rte_int128_t *exp,
-- 
2.39.2


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

* [PATCH v2 11/14] eal: mark rte_power API's stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (9 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 10/14] eal: mark rte_atomic128_cmp_exchange " Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 12/14] eal: mark rte_eal_vfio_get_token stable Stephen Hemminger
                     ` (4 subsequent siblings)
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

These were added back in 2020.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/generic/rte_power_intrinsics.h | 16 ----------------
 lib/eal/version.map                            | 12 ++++--------
 2 files changed, 4 insertions(+), 24 deletions(-)

diff --git a/lib/eal/include/generic/rte_power_intrinsics.h b/lib/eal/include/generic/rte_power_intrinsics.h
index f981df7d75a1..922c32c83fdb 100644
--- a/lib/eal/include/generic/rte_power_intrinsics.h
+++ b/lib/eal/include/generic/rte_power_intrinsics.h
@@ -54,9 +54,6 @@ struct rte_power_monitor_cond {
 };
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Monitor specific address for changes. This will cause the CPU to enter an
  * architecture-defined optimized power state until either the specified
  * memory address is written to, a certain TSC timestamp is reached, or other
@@ -84,14 +81,10 @@ struct rte_power_monitor_cond {
  *   -EINVAL on invalid parameters
  *   -ENOTSUP if unsupported
  */
-__rte_experimental
 int rte_power_monitor(const struct rte_power_monitor_cond *pmc,
 		const uint64_t tsc_timestamp);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Wake up a specific lcore that is in a power optimized state and is monitoring
  * an address.
  *
@@ -104,13 +97,9 @@ int rte_power_monitor(const struct rte_power_monitor_cond *pmc,
  * @param lcore_id
  *   Lcore ID of a sleeping thread.
  */
-__rte_experimental
 int rte_power_monitor_wakeup(const unsigned int lcore_id);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Enter an architecture-defined optimized power state until a certain TSC
  * timestamp is reached.
  *
@@ -126,13 +115,9 @@ int rte_power_monitor_wakeup(const unsigned int lcore_id);
  *   -EINVAL on invalid parameters
  *   -ENOTSUP if unsupported
  */
-__rte_experimental
 int rte_power_pause(const uint64_t tsc_timestamp);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Monitor a set of addresses for changes. This will cause the CPU to enter an
  * architecture-defined optimized power state until either one of the specified
  * memory addresses is written to, a certain TSC timestamp is reached, or other
@@ -160,7 +145,6 @@ int rte_power_pause(const uint64_t tsc_timestamp);
  *   -EINVAL on invalid parameters
  *   -ENOTSUP if unsupported
  */
-__rte_experimental
 int rte_power_monitor_multi(const struct rte_power_monitor_cond pmc[],
 		const uint32_t num, const uint64_t tsc_timestamp);
 
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 0dbd8b0573dd..3d4f6b5f79e6 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -233,6 +233,10 @@ DPDK_24 {
 	rte_mp_request_async;
 	rte_mp_request_sync;
 	rte_mp_sendmsg;
+	rte_power_monitor; # WINDOWS_NO_EXPORT
+	rte_power_monitor_wakeup; # WINDOWS_NO_EXPORT
+	rte_power_pause; # WINDOWS_NO_EXPORT
+	rte_power_monitor_multi; # WINDOWS_NO_EXPORT
 	rte_rand;
 	rte_rand_max;
 	rte_realloc;
@@ -378,11 +382,6 @@ EXPERIMENTAL {
 	rte_vect_get_max_simd_bitwidth;
 	rte_vect_set_max_simd_bitwidth;
 
-	# added in 21.02
-	rte_power_monitor; # WINDOWS_NO_EXPORT
-	rte_power_monitor_wakeup; # WINDOWS_NO_EXPORT
-	rte_power_pause; # WINDOWS_NO_EXPORT
-
 	# added in 21.05
 	rte_version_minor;
 	rte_version_month;
@@ -391,9 +390,6 @@ EXPERIMENTAL {
 	rte_version_suffix;
 	rte_version_year;
 
-	# added in 21.08
-	rte_power_monitor_multi; # WINDOWS_NO_EXPORT
-
 	# added in 21.11
 
 	# added in 23.03
-- 
2.39.2


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

* [PATCH v2 12/14] eal: mark rte_eal_vfio_get_token stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (10 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 11/14] eal: mark rte_power API's stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 13/14] eal: mark rte_vect simd bandwidth API as stable Stephen Hemminger
                     ` (3 subsequent siblings)
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

This API was added in 20.08 release.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_eal.h | 4 ----
 lib/eal/version.map       | 4 +---
 2 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/lib/eal/include/rte_eal.h b/lib/eal/include/rte_eal.h
index cd318ee14152..c2256f832e51 100644
--- a/lib/eal/include/rte_eal.h
+++ b/lib/eal/include/rte_eal.h
@@ -409,16 +409,12 @@ int rte_eal_create_uio_dev(void);
 enum rte_intr_mode rte_eal_vfio_intr_mode(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Copy the user-configured vfio VF token.
  *
  * @param vf_token
  *   vfio VF token configured with the command line is copied
  *   into this parameter, zero uuid by default.
  */
-__rte_experimental
 void rte_eal_vfio_get_vf_token(rte_uuid_t vf_token);
 
 /**
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 3d4f6b5f79e6..529963b61b15 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -88,6 +88,7 @@ DPDK_24 {
 	rte_eal_tailq_lookup;
 	rte_eal_tailq_register;
 	rte_eal_using_phys_addrs;
+	rte_eal_vfio_get_vf_token; # WINDOWS_NO_EXPORT
 	rte_eal_vfio_intr_mode; # WINDOWS_NO_EXPORT
 	rte_eal_wait_lcore;
 	rte_epoll_ctl;
@@ -373,9 +374,6 @@ EXPERIMENTAL {
 	rte_trace_regexp; # WINDOWS_NO_EXPORT
 	rte_trace_save; # WINDOWS_NO_EXPORT
 
-	# added in 20.08
-	rte_eal_vfio_get_vf_token; # WINDOWS_NO_EXPORT
-
 	# added in 20.11
 	__rte_eal_trace_generic_size_t; # WINDOWS_NO_EXPORT
 	rte_cpu_get_intrinsics_support; # WINDOWS_NO_EXPORT
-- 
2.39.2


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

* [PATCH v2 13/14] eal: mark rte_vect simd bandwidth API as stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (11 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 12/14] eal: mark rte_eal_vfio_get_token stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-20 21:41   ` [PATCH v2 14/14] eal: make rte_version API's stable Stephen Hemminger
                     ` (2 subsequent siblings)
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

These were added back in 20.11.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/generic/rte_vect.h | 8 --------
 lib/eal/version.map                | 4 ++--
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/lib/eal/include/generic/rte_vect.h b/lib/eal/include/generic/rte_vect.h
index 777510cc3df4..2314eb9d374b 100644
--- a/lib/eal/include/generic/rte_vect.h
+++ b/lib/eal/include/generic/rte_vect.h
@@ -208,21 +208,14 @@ enum rte_vect_max_simd {
 };
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Get the supported SIMD bitwidth.
  *
  * @return
  *   uint16_t bitwidth.
  */
-__rte_experimental
 uint16_t rte_vect_get_max_simd_bitwidth(void);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
  * Set the supported SIMD bitwidth.
  * This API should only be called once at initialization, before EAL init.
  *
@@ -233,7 +226,6 @@ uint16_t rte_vect_get_max_simd_bitwidth(void);
  *   - -EINVAL on invalid bitwidth parameter.
  *   - -EPERM if bitwidth is forced.
  */
-__rte_experimental
 int rte_vect_set_max_simd_bitwidth(uint16_t bitwidth);
 
 #endif /* _RTE_VECT_H_ */
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 529963b61b15..756f446524c2 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -314,6 +314,8 @@ DPDK_24 {
 	rte_uuid_is_null;
 	rte_uuid_parse;
 	rte_uuid_unparse;
+	rte_vect_get_max_simd_bitwidth;
+	rte_vect_set_max_simd_bitwidth;
 	rte_version;
 	rte_vfio_clear_group; # WINDOWS_NO_EXPORT
 	rte_vfio_container_create; # WINDOWS_NO_EXPORT
@@ -377,8 +379,6 @@ EXPERIMENTAL {
 	# added in 20.11
 	__rte_eal_trace_generic_size_t; # WINDOWS_NO_EXPORT
 	rte_cpu_get_intrinsics_support; # WINDOWS_NO_EXPORT
-	rte_vect_get_max_simd_bitwidth;
-	rte_vect_set_max_simd_bitwidth;
 
 	# added in 21.05
 	rte_version_minor;
-- 
2.39.2


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

* [PATCH v2 14/14] eal: make rte_version API's stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (12 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 13/14] eal: mark rte_vect simd bandwidth API as stable Stephen Hemminger
@ 2023-10-20 21:41   ` Stephen Hemminger
  2023-10-23  9:13   ` [PATCH v2 00/14] eal: mark older API's as stable Bruce Richardson
  2023-11-14 13:10   ` David Marchand
  15 siblings, 0 replies; 47+ messages in thread
From: Stephen Hemminger @ 2023-10-20 21:41 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

These have been around since 2020 releases.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/eal/include/rte_version.h |  6 ------
 lib/eal/version.map           | 16 ++++++----------
 2 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/lib/eal/include/rte_version.h b/lib/eal/include/rte_version.h
index 414b6167f286..121d75bdbe28 100644
--- a/lib/eal/include/rte_version.h
+++ b/lib/eal/include/rte_version.h
@@ -35,37 +35,31 @@ extern "C" {
 /**
  * Function to return DPDK version prefix string
  */
-__rte_experimental
 const char *rte_version_prefix(void);
 
 /**
  * Function to return DPDK version year
  */
-__rte_experimental
 unsigned int rte_version_year(void);
 
 /**
  * Function to return DPDK version month
  */
-__rte_experimental
 unsigned int rte_version_month(void);
 
 /**
  * Function to return DPDK minor version number
  */
-__rte_experimental
 unsigned int rte_version_minor(void);
 
 /**
  * Function to return DPDK version suffix for any release candidates
  */
-__rte_experimental
 const char *rte_version_suffix(void);
 
 /**
  * Function to return DPDK version release candidate value
  */
-__rte_experimental
 unsigned int rte_version_release(void);
 
 /**
diff --git a/lib/eal/version.map b/lib/eal/version.map
index 756f446524c2..a68986eb2773 100644
--- a/lib/eal/version.map
+++ b/lib/eal/version.map
@@ -317,6 +317,12 @@ DPDK_24 {
 	rte_vect_get_max_simd_bitwidth;
 	rte_vect_set_max_simd_bitwidth;
 	rte_version;
+	rte_version_minor;
+	rte_version_month;
+	rte_version_prefix;
+	rte_version_release;
+	rte_version_suffix;
+	rte_version_year;
 	rte_vfio_clear_group; # WINDOWS_NO_EXPORT
 	rte_vfio_container_create; # WINDOWS_NO_EXPORT
 	rte_vfio_container_destroy; # WINDOWS_NO_EXPORT
@@ -380,16 +386,6 @@ EXPERIMENTAL {
 	__rte_eal_trace_generic_size_t; # WINDOWS_NO_EXPORT
 	rte_cpu_get_intrinsics_support; # WINDOWS_NO_EXPORT
 
-	# added in 21.05
-	rte_version_minor;
-	rte_version_month;
-	rte_version_prefix;
-	rte_version_release;
-	rte_version_suffix;
-	rte_version_year;
-
-	# added in 21.11
-
 	# added in 23.03
 	rte_lcore_register_usage_cb;
 	__rte_eal_trace_generic_blob;
-- 
2.39.2


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

* RE: [PATCH v2 01/14] eal: make bitops a stable API
  2023-10-20 21:41   ` [PATCH v2 01/14] eal: make bitops a stable API Stephen Hemminger
@ 2023-10-23  2:31     ` Joyce Kong
  0 siblings, 0 replies; 47+ messages in thread
From: Joyce Kong @ 2023-10-23  2:31 UTC (permalink / raw)
  To: Stephen Hemminger, dev; +Cc: Cristian Dumitrescu

> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Saturday, October 21, 2023 5:41 AM
> To: dev@dpdk.org
> Cc: Stephen Hemminger <stephen@networkplumber.org>; Cristian
> Dumitrescu <cristian.dumitrescu@intel.com>; Joyce Kong
> <Joyce.Kong@arm.com>
> Subject: [PATCH v2 01/14] eal: make bitops a stable API
>
> These were added in 20.05 release.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

Reviewed-by: Joyce Kong <joyce.kong@arm.com>

> ---
>  lib/eal/include/rte_bitmap.h |  8 --------  lib/eal/include/rte_bitops.h | 40 -----
> -------------------------------
>  2 files changed, 48 deletions(-)
>
> diff --git a/lib/eal/include/rte_bitmap.h b/lib/eal/include/rte_bitmap.h index
> 46a822768d50..ec819595624c 100644
> --- a/lib/eal/include/rte_bitmap.h
> +++ b/lib/eal/include/rte_bitmap.h
> @@ -203,9 +203,6 @@ rte_bitmap_init(uint32_t n_bits, uint8_t *mem,
> uint32_t mem_size)  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Bitmap clear slab overhead bits.
>   *
>   * @param slabs
> @@ -215,7 +212,6 @@ rte_bitmap_init(uint32_t n_bits, uint8_t *mem,
> uint32_t mem_size)
>   * @param pos
>   *   The start bit position in the slabs to be cleared.
>   */
> -__rte_experimental
>  static inline void
>  __rte_bitmap_clear_slab_overhead_bits(uint64_t *slabs, uint32_t slab_size,
>                                     uint32_t pos)
> @@ -235,9 +231,6 @@ __rte_bitmap_clear_slab_overhead_bits(uint64_t
> *slabs, uint32_t slab_size,  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>   * Bitmap initialization with all bits set
>   *
>   * @param n_bits
> @@ -249,7 +242,6 @@ __rte_bitmap_clear_slab_overhead_bits(uint64_t
> *slabs, uint32_t slab_size,
>   * @return
>   *   Handle to bitmap instance.
>   */
> -__rte_experimental
>  static inline struct rte_bitmap *
>  rte_bitmap_init_with_all_set(uint32_t n_bits, uint8_t *mem, uint32_t
> mem_size)  { diff --git a/lib/eal/include/rte_bitops.h
> b/lib/eal/include/rte_bitops.h index 6b8ae8d3acf6..29d24b3a780e 100644
> --- a/lib/eal/include/rte_bitops.h
> +++ b/lib/eal/include/rte_bitops.h
> @@ -42,9 +42,6 @@ extern "C" {
>  /*------------------------ 32-bit relaxed operations ------------------------*/
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Get the target bit from a 32-bit value without memory ordering.
>   *
>   * @param nr
> @@ -54,7 +51,6 @@ extern "C" {
>   * @return
>   *   The target bit.
>   */
> -__rte_experimental
>  static inline uint32_t
>  rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t *addr)  { @@ -65,9
> +61,6 @@ rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t *addr)  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Set the target bit in a 32-bit value to 1 without memory ordering.
>   *
>   * @param nr
> @@ -75,7 +68,6 @@ rte_bit_relaxed_get32(unsigned int nr, volatile uint32_t
> *addr)
>   * @param addr
>   *   The address holding the bit.
>   */
> -__rte_experimental
>  static inline void
>  rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t *addr)  { @@ -86,9
> +78,6 @@ rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t *addr)  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Clear the target bit in a 32-bit value to 0 without memory ordering.
>   *
>   * @param nr
> @@ -96,7 +85,6 @@ rte_bit_relaxed_set32(unsigned int nr, volatile uint32_t
> *addr)
>   * @param addr
>   *   The address holding the bit.
>   */
> -__rte_experimental
>  static inline void
>  rte_bit_relaxed_clear32(unsigned int nr, volatile uint32_t *addr)  { @@ -107,9
> +95,6 @@ rte_bit_relaxed_clear32(unsigned int nr, volatile uint32_t *addr)  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Return the original bit from a 32-bit value, then set it to 1 without
>   * memory ordering.
>   *
> @@ -120,7 +105,6 @@ rte_bit_relaxed_clear32(unsigned int nr, volatile
> uint32_t *addr)
>   * @return
>   *   The original bit.
>   */
> -__rte_experimental
>  static inline uint32_t
>  rte_bit_relaxed_test_and_set32(unsigned int nr, volatile uint32_t *addr)
> { @@ -133,9 +117,6 @@ rte_bit_relaxed_test_and_set32(unsigned int nr,
> volatile uint32_t *addr)  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Return the original bit from a 32-bit value, then clear it to 0 without
>   * memory ordering.
>   *
> @@ -146,7 +127,6 @@ rte_bit_relaxed_test_and_set32(unsigned int nr,
> volatile uint32_t *addr)
>   * @return
>   *   The original bit.
>   */
> -__rte_experimental
>  static inline uint32_t
>  rte_bit_relaxed_test_and_clear32(unsigned int nr, volatile uint32_t *addr)
> { @@ -161,9 +141,6 @@ rte_bit_relaxed_test_and_clear32(unsigned int nr,
> volatile uint32_t *addr)
>  /*------------------------ 64-bit relaxed operations ------------------------*/
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Get the target bit from a 64-bit value without memory ordering.
>   *
>   * @param nr
> @@ -173,7 +150,6 @@ rte_bit_relaxed_test_and_clear32(unsigned int nr,
> volatile uint32_t *addr)
>   * @return
>   *   The target bit.
>   */
> -__rte_experimental
>  static inline uint64_t
>  rte_bit_relaxed_get64(unsigned int nr, volatile uint64_t *addr)  { @@ -184,9
> +160,6 @@ rte_bit_relaxed_get64(unsigned int nr, volatile uint64_t *addr)  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Set the target bit in a 64-bit value to 1 without memory ordering.
>   *
>   * @param nr
> @@ -194,7 +167,6 @@ rte_bit_relaxed_get64(unsigned int nr, volatile
> uint64_t *addr)
>   * @param addr
>   *   The address holding the bit.
>   */
> -__rte_experimental
>  static inline void
>  rte_bit_relaxed_set64(unsigned int nr, volatile uint64_t *addr)  { @@ -205,9
> +177,6 @@ rte_bit_relaxed_set64(unsigned int nr, volatile uint64_t *addr)  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Clear the target bit in a 64-bit value to 0 without memory ordering.
>   *
>   * @param nr
> @@ -215,7 +184,6 @@ rte_bit_relaxed_set64(unsigned int nr, volatile
> uint64_t *addr)
>   * @param addr
>   *   The address holding the bit.
>   */
> -__rte_experimental
>  static inline void
>  rte_bit_relaxed_clear64(unsigned int nr, volatile uint64_t *addr)  { @@ -226,9
> +194,6 @@ rte_bit_relaxed_clear64(unsigned int nr, volatile uint64_t *addr)  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Return the original bit from a 64-bit value, then set it to 1 without
>   * memory ordering.
>   *
> @@ -239,7 +204,6 @@ rte_bit_relaxed_clear64(unsigned int nr, volatile
> uint64_t *addr)
>   * @return
>   *   The original bit.
>   */
> -__rte_experimental
>  static inline uint64_t
>  rte_bit_relaxed_test_and_set64(unsigned int nr, volatile uint64_t *addr)
> { @@ -252,9 +216,6 @@ rte_bit_relaxed_test_and_set64(unsigned int nr,
> volatile uint64_t *addr)  }
>
>  /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change, or be removed, without prior
> notice
> - *
>   * Return the original bit from a 64-bit value, then clear it to 0 without
>   * memory ordering.
>   *
> @@ -265,7 +226,6 @@ rte_bit_relaxed_test_and_set64(unsigned int nr,
> volatile uint64_t *addr)
>   * @return
>   *   The original bit.
>   */
> -__rte_experimental
>  static inline uint64_t
>  rte_bit_relaxed_test_and_clear64(unsigned int nr, volatile uint64_t *addr)  {
> --
> 2.39.2

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

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

* RE: [PATCH v2 10/14] eal: mark rte_atomic128_cmp_exchange as stable
  2023-10-20 21:41   ` [PATCH v2 10/14] eal: mark rte_atomic128_cmp_exchange " Stephen Hemminger
@ 2023-10-23  3:00     ` Ruifeng Wang
  0 siblings, 0 replies; 47+ messages in thread
From: Ruifeng Wang @ 2023-10-23  3:00 UTC (permalink / raw)
  To: Stephen Hemminger, dev; +Cc: Bruce Richardson, Konstantin Ananyev, nd

> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Saturday, October 21, 2023 5:41 AM
> To: dev@dpdk.org
> Cc: Stephen Hemminger <stephen@networkplumber.org>; Ruifeng Wang <Ruifeng.Wang@arm.com>;
> Bruce Richardson <bruce.richardson@intel.com>; Konstantin Ananyev
> <konstantin.v.ananyev@yandex.ru>
> Subject: [PATCH v2 10/14] eal: mark rte_atomic128_cmp_exchange as stable
> 
> This has been around since 2021.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>  lib/eal/arm/include/rte_atomic_64.h  | 1 -  lib/eal/include/generic/rte_atomic.h | 1 -
> lib/eal/x86/include/rte_atomic_64.h  | 1 -
>  3 files changed, 3 deletions(-)
> 
> diff --git a/lib/eal/arm/include/rte_atomic_64.h b/lib/eal/arm/include/rte_atomic_64.h
> index 75d8ba6092cc..96205e6ad372 100644
> --- a/lib/eal/arm/include/rte_atomic_64.h
> +++ b/lib/eal/arm/include/rte_atomic_64.h
> @@ -94,7 +94,6 @@ __ATOMIC128_CAS_OP(__cas_128_acq_rel, "caspal")
> 
>  #endif
> 
> -__rte_experimental
>  static inline int
>  rte_atomic128_cmp_exchange(rte_int128_t *dst, rte_int128_t *exp,
>  		const rte_int128_t *src, unsigned int weak, int success, diff --git
> a/lib/eal/include/generic/rte_atomic.h b/lib/eal/include/generic/rte_atomic.h
> index db6797e379f3..048b547ea62b 100644
> --- a/lib/eal/include/generic/rte_atomic.h
> +++ b/lib/eal/include/generic/rte_atomic.h
> @@ -1147,7 +1147,6 @@ typedef struct {
>   * @return
>   *   Non-zero on success; 0 on failure.
>   */
> -__rte_experimental
>  static inline int
>  rte_atomic128_cmp_exchange(rte_int128_t *dst,
>  			   rte_int128_t *exp,
> diff --git a/lib/eal/x86/include/rte_atomic_64.h b/lib/eal/x86/include/rte_atomic_64.h
> index 0edee8627224..e968bbf0ce65 100644
> --- a/lib/eal/x86/include/rte_atomic_64.h
> +++ b/lib/eal/x86/include/rte_atomic_64.h
> @@ -182,7 +182,6 @@ static inline void rte_atomic64_clear(rte_atomic64_t *v)
> 
>  /*------------------------ 128 bit atomic operations -------------------------*/
> 
> -__rte_experimental
>  static inline int
>  rte_atomic128_cmp_exchange(rte_int128_t *dst,
>  			   rte_int128_t *exp,
> --
> 2.39.2

Acked-by: Ruifeng Wang <ruifeng.wang@arm.com>


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

* Re: [PATCH v2 00/14] eal: mark older API's as stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (13 preceding siblings ...)
  2023-10-20 21:41   ` [PATCH v2 14/14] eal: make rte_version API's stable Stephen Hemminger
@ 2023-10-23  9:13   ` Bruce Richardson
  2023-11-14 13:10   ` David Marchand
  15 siblings, 0 replies; 47+ messages in thread
From: Bruce Richardson @ 2023-10-23  9:13 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

On Fri, Oct 20, 2023 at 02:41:05PM -0700, Stephen Hemminger wrote:
> About 80 function in EAL were marked experimental
> and should have been made stable by now.
> 
> v2 - rebase and fix some bits in wrong patch
> 
> Stephen Hemminger (14):
>   eal: make bitops a stable API
>   eal: mark rte_dev API's as stable
>   eal: make rte_class API's stable
>   eal: make rte_drand a stable API
>   eal: make rte_service_lcore_may_be_active stable
>   eal: make rte_devargs_reset stable
>   eal: make pflock API stable
>   eal: make seqcount and seqlock stable
>   eal: mark rte_intr_XXX API's as stable
>   eal: mark rte_atomic128_cmp_exchange as stable
>   eal: mark rte_power API's stable
>   eal: mark rte_eal_vfio_get_token stable
>   eal: mark rte_vect simd bandwidth API as stable
>   eal: make rte_version API's stable
> 
Series-acked-by: Bruce Richardson <bruce.richardson@intel.com>

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

* Re: [PATCH v2 04/14] eal: make rte_drand a stable API
  2023-10-20 21:41   ` [PATCH v2 04/14] eal: make rte_drand a stable API Stephen Hemminger
@ 2023-10-23 16:12     ` Mattias Rönnblom
  0 siblings, 0 replies; 47+ messages in thread
From: Mattias Rönnblom @ 2023-10-23 16:12 UTC (permalink / raw)
  To: Stephen Hemminger, dev; +Cc: Mattias Rönnblom

On 2023-10-20 23:41, Stephen Hemminger wrote:
> This API was added in 2020.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
>   lib/eal/include/rte_random.h | 4 ----
>   lib/eal/version.map          | 4 +---
>   2 files changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/lib/eal/include/rte_random.h b/lib/eal/include/rte_random.h
> index c12eb07ea818..ea74ca020044 100644
> --- a/lib/eal/include/rte_random.h
> +++ b/lib/eal/include/rte_random.h
> @@ -70,9 +70,6 @@ uint64_t
>   rte_rand_max(uint64_t upper_bound);
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice
> - *
>    * Generates a pseudo-random floating point number.
>    *
>    * This function returns a non-negative double-precision floating random
> @@ -87,7 +84,6 @@ rte_rand_max(uint64_t upper_bound);
>    * @return
>    *   A pseudo-random value between 0 and 1.0.
>    */
> -__rte_experimental
>   double rte_drand(void);
>   
>   #ifdef __cplusplus
> diff --git a/lib/eal/version.map b/lib/eal/version.map
> index 5fd7ceec94fb..edeb7ff518e2 100644
> --- a/lib/eal/version.map
> +++ b/lib/eal/version.map
> @@ -57,6 +57,7 @@ DPDK_24 {
>   	rte_devargs_parsef;
>   	rte_devargs_remove;
>   	rte_devargs_type_count;
> +	rte_drand;
>   	rte_driver_name;
>   	rte_dump_physmem_layout;
>   	rte_dump_stack;
> @@ -395,9 +396,6 @@ EXPERIMENTAL {
>   	rte_intr_type_get;
>   	rte_intr_type_set;
>   
> -	# added in 22.07
> -	rte_drand;
> -
>   	# added in 23.03
>   	rte_lcore_register_usage_cb;
>   	__rte_eal_trace_generic_blob;

Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>


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

* Re: [PATCH v2 08/14] eal: make seqcount and seqlock stable
  2023-10-20 21:41   ` [PATCH v2 08/14] eal: make seqcount and seqlock stable Stephen Hemminger
@ 2023-10-23 16:14     ` Mattias Rönnblom
  0 siblings, 0 replies; 47+ messages in thread
From: Mattias Rönnblom @ 2023-10-23 16:14 UTC (permalink / raw)
  To: Stephen Hemminger, dev; +Cc: Mattias Rönnblom

On 2023-10-20 23:41, Stephen Hemminger wrote:
> These were add back in 22.07 release.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
> ---
>   lib/eal/include/rte_seqcount.h | 23 -----------------------
>   lib/eal/include/rte_seqlock.h  | 21 ---------------------
>   2 files changed, 44 deletions(-)
> 
> diff --git a/lib/eal/include/rte_seqcount.h b/lib/eal/include/rte_seqcount.h
> index 4f9cefb33862..ff8985310377 100644
> --- a/lib/eal/include/rte_seqcount.h
> +++ b/lib/eal/include/rte_seqcount.h
> @@ -41,15 +41,11 @@ typedef struct {
>   #define RTE_SEQCOUNT_INITIALIZER { .sn = 0 }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Initialize the sequence counter.
>    *
>    * @param seqcount
>    *   A pointer to the sequence counter.
>    */
> -__rte_experimental
>   static inline void
>   rte_seqcount_init(rte_seqcount_t *seqcount)
>   {
> @@ -57,9 +53,6 @@ rte_seqcount_init(rte_seqcount_t *seqcount)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Begin a read-side critical section.
>    *
>    * A call to this function marks the beginning of a read-side critical
> @@ -101,8 +94,6 @@ rte_seqcount_init(rte_seqcount_t *seqcount)
>    *
>    * @see rte_seqcount_read_retry()
>    */
> -
> -__rte_experimental
>   static inline uint32_t
>   rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
>   {
> @@ -114,9 +105,6 @@ rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * End a read-side critical section.
>    *
>    * A call to this function marks the end of a read-side critical
> @@ -146,8 +134,6 @@ rte_seqcount_read_begin(const rte_seqcount_t *seqcount)
>    *
>    * @see rte_seqcount_read_begin()
>    */
> -
> -__rte_experimental
>   static inline bool
>   rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
>   {
> @@ -172,9 +158,6 @@ rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Begin a write-side critical section.
>    *
>    * A call to this function marks the beginning of a write-side
> @@ -196,8 +179,6 @@ rte_seqcount_read_retry(const rte_seqcount_t *seqcount, uint32_t begin_sn)
>    *
>    * @see rte_seqcount_write_end()
>    */
> -
> -__rte_experimental
>   static inline void
>   rte_seqcount_write_begin(rte_seqcount_t *seqcount)
>   {
> @@ -214,9 +195,6 @@ rte_seqcount_write_begin(rte_seqcount_t *seqcount)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * End a write-side critical section.
>    *
>    * A call to this function marks the end of the write-side critical
> @@ -228,7 +206,6 @@ rte_seqcount_write_begin(rte_seqcount_t *seqcount)
>    *
>    * @see rte_seqcount_write_begin()
>    */
> -__rte_experimental
>   static inline void
>   rte_seqcount_write_end(rte_seqcount_t *seqcount)
>   {
> diff --git a/lib/eal/include/rte_seqlock.h b/lib/eal/include/rte_seqlock.h
> index fcbb9c586668..589c98188529 100644
> --- a/lib/eal/include/rte_seqlock.h
> +++ b/lib/eal/include/rte_seqlock.h
> @@ -114,9 +114,6 @@ typedef struct {
>   	}
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Initialize the seqlock.
>    *
>    * This function initializes the seqlock, and leaves the writer-side
> @@ -125,7 +122,6 @@ typedef struct {
>    * @param seqlock
>    *   A pointer to the seqlock.
>    */
> -__rte_experimental
>   static inline void
>   rte_seqlock_init(rte_seqlock_t *seqlock)
>   {
> @@ -134,9 +130,6 @@ rte_seqlock_init(rte_seqlock_t *seqlock)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Begin a read-side critical section.
>    *
>    * See rte_seqcount_read_retry() for details.
> @@ -150,8 +143,6 @@ rte_seqlock_init(rte_seqlock_t *seqlock)
>    * @see rte_seqlock_read_retry()
>    * @see rte_seqcount_read_retry()
>    */
> -
> -__rte_experimental
>   static inline uint32_t
>   rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
>   {
> @@ -159,9 +150,6 @@ rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * End a read-side critical section.
>    *
>    * See rte_seqcount_read_retry() for details.
> @@ -177,7 +165,6 @@ rte_seqlock_read_begin(const rte_seqlock_t *seqlock)
>    *
>    * @see rte_seqlock_read_begin()
>    */
> -__rte_experimental
>   static inline bool
>   rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
>   {
> @@ -185,9 +172,6 @@ rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * Begin a write-side critical section.
>    *
>    * A call to this function acquires the write lock associated @p
> @@ -212,7 +196,6 @@ rte_seqlock_read_retry(const rte_seqlock_t *seqlock, uint32_t begin_sn)
>    *
>    * @see rte_seqlock_write_unlock()
>    */
> -__rte_experimental
>   static inline void
>   rte_seqlock_write_lock(rte_seqlock_t *seqlock)
>   	__rte_exclusive_lock_function(&seqlock->lock)
> @@ -224,9 +207,6 @@ rte_seqlock_write_lock(rte_seqlock_t *seqlock)
>   }
>   
>   /**
> - * @warning
> - * @b EXPERIMENTAL: this API may change without prior notice.
> - *
>    * End a write-side critical section.
>    *
>    * A call to this function marks the end of the write-side critical
> @@ -238,7 +218,6 @@ rte_seqlock_write_lock(rte_seqlock_t *seqlock)
>    *
>    * @see rte_seqlock_write_lock()
>    */
> -__rte_experimental
>   static inline void
>   rte_seqlock_write_unlock(rte_seqlock_t *seqlock)
>   	__rte_unlock_function(&seqlock->lock)

Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>

Thanks!

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

* Re: [PATCH v2 00/14] eal: mark older API's as stable
  2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
                     ` (14 preceding siblings ...)
  2023-10-23  9:13   ` [PATCH v2 00/14] eal: mark older API's as stable Bruce Richardson
@ 2023-11-14 13:10   ` David Marchand
  15 siblings, 0 replies; 47+ messages in thread
From: David Marchand @ 2023-11-14 13:10 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

On Fri, Oct 20, 2023 at 11:41 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> About 80 function in EAL were marked experimental
> and should have been made stable by now.
>
> v2 - rebase and fix some bits in wrong patch
>
> Stephen Hemminger (14):
>   eal: make bitops a stable API
>   eal: mark rte_dev API's as stable
>   eal: make rte_class API's stable
>   eal: make rte_drand a stable API
>   eal: make rte_service_lcore_may_be_active stable
>   eal: make rte_devargs_reset stable
>   eal: make pflock API stable
>   eal: make seqcount and seqlock stable
>   eal: mark rte_intr_XXX API's as stable
>   eal: mark rte_atomic128_cmp_exchange as stable
>   eal: mark rte_power API's stable
>   eal: mark rte_eal_vfio_get_token stable
>   eal: mark rte_vect simd bandwidth API as stable
>   eal: make rte_version API's stable
>
>  lib/eal/arm/include/rte_atomic_64.h           |  1 -
>  lib/eal/include/generic/rte_atomic.h          |  1 -
>  .../include/generic/rte_power_intrinsics.h    | 16 ----
>  lib/eal/include/generic/rte_vect.h            |  8 --
>  lib/eal/include/rte_bitmap.h                  |  8 --
>  lib/eal/include/rte_bitops.h                  | 40 --------
>  lib/eal/include/rte_class.h                   |  4 -
>  lib/eal/include/rte_dev.h                     | 32 -------
>  lib/eal/include/rte_devargs.h                 |  1 -
>  lib/eal/include/rte_eal.h                     |  4 -
>  lib/eal/include/rte_interrupts.h              | 28 ------
>  lib/eal/include/rte_pflock.h                  | 20 ----
>  lib/eal/include/rte_random.h                  |  4 -
>  lib/eal/include/rte_seqcount.h                | 23 -----
>  lib/eal/include/rte_seqlock.h                 | 21 ----
>  lib/eal/include/rte_service.h                 |  1 -
>  lib/eal/include/rte_version.h                 |  6 --
>  lib/eal/version.map                           | 96 ++++++++-----------
>  lib/eal/x86/include/rte_atomic_64.h           |  1 -
>  19 files changed, 38 insertions(+), 277 deletions(-)

Series applied.
Thanks.


-- 
David Marchand


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

end of thread, other threads:[~2023-11-14 13:11 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-09 16:42 [PATCH 00/15] eal: mark older API's stable Stephen Hemminger
2023-08-09 16:42 ` [PATCH 01/15] eal: make bitops a stable API Stephen Hemminger
2023-08-09 17:58   ` Tyler Retzlaff
2023-08-09 20:07     ` Stephen Hemminger
2023-08-09 21:59       ` Tyler Retzlaff
2023-08-09 16:42 ` [PATCH 02/15] eal: mark rte_dev API's as stable Stephen Hemminger
2023-08-09 16:42 ` [PATCH 03/15] eal: make rte_class API's stable Stephen Hemminger
2023-08-09 16:42 ` [PATCH 04/15] eal: make rte_version_XXX " Stephen Hemminger
2023-08-10  8:24   ` Bruce Richardson
2023-08-09 16:42 ` [PATCH 05/15] eal: make rte_drand a stable API Stephen Hemminger
2023-08-09 16:42 ` [PATCH 06/15] eal: make rte_service_lcore_may_be_active stable Stephen Hemminger
2023-08-10  9:08   ` Van Haaren, Harry
2023-08-09 16:42 ` [PATCH 07/15] eal: make rte_devargs_reset stable Stephen Hemminger
2023-08-09 16:43 ` [PATCH 08/15] eal: make pflock API stable Stephen Hemminger
2023-08-09 16:43 ` [PATCH 09/15] eal: make seqcount and seqlock stable Stephen Hemminger
2023-08-09 19:47   ` Mattias Rönnblom
2023-08-09 16:43 ` [PATCH 10/15] eal: mark rte_intr_XXX API's as stable Stephen Hemminger
2023-08-09 16:43 ` [PATCH 11/15] eal: mark rte_atomic128_cmp_exchange " Stephen Hemminger
2023-08-09 17:50   ` Tyler Retzlaff
2023-08-09 16:43 ` [PATCH 12/15] eal: make most rte_thread API's stable Stephen Hemminger
2023-08-09 17:53   ` Tyler Retzlaff
2023-08-09 16:43 ` [PATCH 13/15] eal: mark rte_power " Stephen Hemminger
2023-08-09 16:43 ` [PATCH 14/15] eal: mark rte_eal_vfio_get_token stable Stephen Hemminger
2023-08-09 17:55   ` Tyler Retzlaff
2023-08-09 16:43 ` [PATCH 15/15] eal: mark rte_vect simd bandwidth API as stable Stephen Hemminger
2023-10-18 19:29 ` [PATCH 00/15] eal: mark older API's stable David Marchand
2023-10-20 21:41 ` [PATCH v2 00/14] eal: mark older API's as stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 01/14] eal: make bitops a stable API Stephen Hemminger
2023-10-23  2:31     ` Joyce Kong
2023-10-20 21:41   ` [PATCH v2 02/14] eal: mark rte_dev API's as stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 03/14] eal: make rte_class API's stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 04/14] eal: make rte_drand a stable API Stephen Hemminger
2023-10-23 16:12     ` Mattias Rönnblom
2023-10-20 21:41   ` [PATCH v2 05/14] eal: make rte_service_lcore_may_be_active stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 06/14] eal: make rte_devargs_reset stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 07/14] eal: make pflock API stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 08/14] eal: make seqcount and seqlock stable Stephen Hemminger
2023-10-23 16:14     ` Mattias Rönnblom
2023-10-20 21:41   ` [PATCH v2 09/14] eal: mark rte_intr_XXX API's as stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 10/14] eal: mark rte_atomic128_cmp_exchange " Stephen Hemminger
2023-10-23  3:00     ` Ruifeng Wang
2023-10-20 21:41   ` [PATCH v2 11/14] eal: mark rte_power API's stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 12/14] eal: mark rte_eal_vfio_get_token stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 13/14] eal: mark rte_vect simd bandwidth API as stable Stephen Hemminger
2023-10-20 21:41   ` [PATCH v2 14/14] eal: make rte_version API's stable Stephen Hemminger
2023-10-23  9:13   ` [PATCH v2 00/14] eal: mark older API's as stable Bruce Richardson
2023-11-14 13:10   ` David Marchand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).