[PATCH 12/20] power: promote PM QoS and uncore API to stable
Stephen Hemminger
stephen at networkplumber.org
Wed Oct 7 23:39:42 CEST 2026
The PM QoS API (rte_power_qos_{set,get}_cpu_resume_latency) has been
experimental since 24.11, and the uncore environment and frequency list
functions (rte_power_{set,unset,get}_uncore_env, rte_power_uncore_freqs)
since 23.11.
These interfaces have not changed since they were introduced and the
rest of the uncore API is already stable, so promote them.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
doc/guides/rel_notes/release_26_11.rst | 7 +++++++
lib/power/rte_power_qos.c | 4 ++--
lib/power/rte_power_qos.h | 10 ----------
lib/power/rte_power_uncore.c | 8 ++++----
lib/power/rte_power_uncore.h | 5 -----
5 files changed, 13 insertions(+), 21 deletions(-)
diff --git a/doc/guides/rel_notes/release_26_11.rst b/doc/guides/rel_notes/release_26_11.rst
index fad1a53e04..e9e9b1f6da 100644
--- a/doc/guides/rel_notes/release_26_11.rst
+++ b/doc/guides/rel_notes/release_26_11.rst
@@ -348,6 +348,13 @@ API Changes
functions in pipeline, the ``rte_swx_table_*`` symbols in table and
the ``rte_swx_port_*`` symbols in port.
+* power: Promoted the following API from experimental to stable:
+
+ * PM QoS: ``rte_power_qos_set_cpu_resume_latency`` and
+ ``rte_power_qos_get_cpu_resume_latency``
+ * uncore: ``rte_power_set_uncore_env``, ``rte_power_unset_uncore_env``,
+ ``rte_power_get_uncore_env`` and ``rte_power_uncore_freqs``
+
* reorder: Promoted the following API from experimental to stable:
``rte_reorder_seqn``, ``rte_reorder_drain_up_to_seqn``,
``rte_reorder_min_seqn_set`` and ``rte_reorder_memory_footprint_get``.
diff --git a/lib/power/rte_power_qos.c b/lib/power/rte_power_qos.c
index d8d8d36a76..3ecfcc54fa 100644
--- a/lib/power/rte_power_qos.c
+++ b/lib/power/rte_power_qos.c
@@ -18,7 +18,7 @@
#define PM_QOS_CPU_RESUME_LATENCY_BUF_LEN 32
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_power_qos_set_cpu_resume_latency, 24.11)
+RTE_EXPORT_SYMBOL(rte_power_qos_set_cpu_resume_latency)
int
rte_power_qos_set_cpu_resume_latency(uint16_t lcore_id, int latency)
{
@@ -69,7 +69,7 @@ rte_power_qos_set_cpu_resume_latency(uint16_t lcore_id, int latency)
return ret;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_power_qos_get_cpu_resume_latency, 24.11)
+RTE_EXPORT_SYMBOL(rte_power_qos_get_cpu_resume_latency)
int
rte_power_qos_get_cpu_resume_latency(uint16_t lcore_id)
{
diff --git a/lib/power/rte_power_qos.h b/lib/power/rte_power_qos.h
index 05a3f51ae2..d8c5ab92d5 100644
--- a/lib/power/rte_power_qos.h
+++ b/lib/power/rte_power_qos.h
@@ -7,8 +7,6 @@
#include <stdint.h>
-#include <rte_compat.h>
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -36,9 +34,6 @@ extern "C" {
#define RTE_POWER_QOS_RESUME_LATENCY_NO_CONSTRAINT INT32_MAX
/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
* @param lcore_id
* target logical core id
*
@@ -48,13 +43,9 @@ extern "C" {
* @return
* 0 on success. Otherwise negative value is returned.
*/
-__rte_experimental
int rte_power_qos_set_cpu_resume_latency(uint16_t lcore_id, int latency);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
* Get the current resume latency of this logical core.
* The default value in kernel is @see RTE_POWER_QOS_RESUME_LATENCY_NO_CONSTRAINT
* if don't set it.
@@ -63,7 +54,6 @@ int rte_power_qos_set_cpu_resume_latency(uint16_t lcore_id, int latency);
* Negative value on failure.
* >= 0 means the actual resume latency limit on this core.
*/
-__rte_experimental
int rte_power_qos_get_cpu_resume_latency(uint16_t lcore_id);
#ifdef __cplusplus
diff --git a/lib/power/rte_power_uncore.c b/lib/power/rte_power_uncore.c
index b50e09a2ad..90e83d9f2a 100644
--- a/lib/power/rte_power_uncore.c
+++ b/lib/power/rte_power_uncore.c
@@ -46,7 +46,7 @@ rte_power_register_uncore_ops(struct rte_power_uncore_ops *driver_ops)
return 0;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_power_set_uncore_env, 23.11)
+RTE_EXPORT_SYMBOL(rte_power_set_uncore_env)
int
rte_power_set_uncore_env(enum rte_uncore_power_mgmt_env env)
{
@@ -86,7 +86,7 @@ rte_power_set_uncore_env(enum rte_uncore_power_mgmt_env env)
return ret;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_power_unset_uncore_env, 23.11)
+RTE_EXPORT_SYMBOL(rte_power_unset_uncore_env)
void
rte_power_unset_uncore_env(void)
{
@@ -95,7 +95,7 @@ rte_power_unset_uncore_env(void)
rte_spinlock_unlock(&global_env_cfg_lock);
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_power_get_uncore_env, 23.11)
+RTE_EXPORT_SYMBOL(rte_power_get_uncore_env)
enum rte_uncore_power_mgmt_env
rte_power_get_uncore_env(void)
{
@@ -180,7 +180,7 @@ rte_power_uncore_freq_min(unsigned int pkg, unsigned int die)
return global_uncore_ops->freq_min(pkg, die);
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_power_uncore_freqs, 23.11)
+RTE_EXPORT_SYMBOL(rte_power_uncore_freqs)
int
rte_power_uncore_freqs(unsigned int pkg, unsigned int die,
uint32_t *freqs, uint32_t num)
diff --git a/lib/power/rte_power_uncore.h b/lib/power/rte_power_uncore.h
index 66aea1b37f..9599839d89 100644
--- a/lib/power/rte_power_uncore.h
+++ b/lib/power/rte_power_uncore.h
@@ -11,7 +11,6 @@
* Uncore Frequency Management
*/
-#include <rte_compat.h>
#include <rte_common.h>
#ifdef __cplusplus
@@ -39,14 +38,12 @@ enum rte_uncore_power_mgmt_env {
* - 0 on success.
* - Negative on error.
*/
-__rte_experimental
int rte_power_set_uncore_env(enum rte_uncore_power_mgmt_env env);
/**
* Unset the global uncore environment configuration.
* This can only be called after all threads have completed.
*/
-__rte_experimental
void rte_power_unset_uncore_env(void);
/**
@@ -55,7 +52,6 @@ void rte_power_unset_uncore_env(void);
* @return
* power_management_env The configured environment.
*/
-__rte_experimental
enum rte_uncore_power_mgmt_env rte_power_get_uncore_env(void);
/**
@@ -203,7 +199,6 @@ int rte_power_uncore_freq_min(unsigned int pkg, unsigned int die);
* - The number of available index's in frequency array.
* - Negative on error.
*/
-__rte_experimental
int rte_power_uncore_freqs(unsigned int pkg, unsigned int die,
uint32_t *freqs, uint32_t num);
--
2.53.0
More information about the dev
mailing list