DPDK  25.11.0
rte_power_cpufreq.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  * Copyright(c) 2024 Advanced Micro Devices, Inc.
4  */
5 
6 #ifndef RTE_POWER_CPUFREQ_H
7 #define RTE_POWER_CPUFREQ_H
8 
14 #include <rte_common.h>
15 #include <rte_log.h>
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 /* Power Management Environment State */
22 enum power_management_env {
23  PM_ENV_NOT_SET = 0,
24  PM_ENV_ACPI_CPUFREQ,
25  PM_ENV_KVM_VM,
26  PM_ENV_PSTATE_CPUFREQ,
27  PM_ENV_CPPC_CPUFREQ,
28  PM_ENV_AMD_PSTATE_CPUFREQ
29 };
30 
43 int rte_power_check_env_supported(enum power_management_env env);
44 
58 int rte_power_set_env(enum power_management_env env);
59 
65 
72 enum power_management_env rte_power_get_env(void);
73 
86 int rte_power_init(unsigned int lcore_id);
87 
99 int rte_power_exit(unsigned int lcore_id);
100 
116 uint32_t rte_power_freqs(unsigned int lcore_id, uint32_t *freqs, uint32_t num);
117 
129 uint32_t rte_power_get_freq(unsigned int lcore_id);
130 
147 uint32_t rte_power_set_freq(unsigned int lcore_id, uint32_t index);
148 
162 int rte_power_freq_up(unsigned int lcore_id);
163 
177 int rte_power_freq_down(unsigned int lcore_id);
178 
192 int rte_power_freq_max(unsigned int lcore_id);
193 
207 int rte_power_freq_min(unsigned int lcore_id);
208 
221 int rte_power_turbo_status(unsigned int lcore_id);
222 
234 int rte_power_freq_enable_turbo(unsigned int lcore_id);
235 
247 int rte_power_freq_disable_turbo(unsigned int lcore_id);
248 
253  union {
254  uint64_t capabilities;
255  struct {
256  uint64_t turbo:1;
257  uint64_t priority:1;
258  };
259  };
260 };
261 
276 int rte_power_get_capabilities(unsigned int lcore_id,
277  struct rte_power_core_capabilities *caps);
278 
279 #ifdef __cplusplus
280 }
281 #endif
282 
283 #endif /* RTE_POWER_CPUFREQ_H */
uint32_t rte_power_freqs(unsigned int lcore_id, uint32_t *freqs, uint32_t num)
int rte_power_freq_down(unsigned int lcore_id)
void rte_power_unset_env(void)
int rte_power_freq_max(unsigned int lcore_id)
int rte_power_turbo_status(unsigned int lcore_id)
int rte_power_set_env(enum power_management_env env)
int rte_power_get_capabilities(unsigned int lcore_id, struct rte_power_core_capabilities *caps)
uint32_t rte_power_set_freq(unsigned int lcore_id, uint32_t index)
int rte_power_freq_min(unsigned int lcore_id)
int rte_power_check_env_supported(enum power_management_env env)
int rte_power_init(unsigned int lcore_id)
int rte_power_freq_enable_turbo(unsigned int lcore_id)
int rte_power_freq_disable_turbo(unsigned int lcore_id)
int rte_power_freq_up(unsigned int lcore_id)
enum power_management_env rte_power_get_env(void)
uint32_t rte_power_get_freq(unsigned int lcore_id)
int rte_power_exit(unsigned int lcore_id)