DPDK 25.11.0-rc1
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
18extern "C" {
19#endif
20
21/* Power Management Environment State */
22enum 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
43int rte_power_check_env_supported(enum power_management_env env);
44
58int rte_power_set_env(enum power_management_env env);
59
65
72enum power_management_env rte_power_get_env(void);
73
86int rte_power_init(unsigned int lcore_id);
87
99int rte_power_exit(unsigned int lcore_id);
100
116uint32_t rte_power_freqs(unsigned int lcore_id, uint32_t *freqs, uint32_t num);
117
129uint32_t rte_power_get_freq(unsigned int lcore_id);
130
147uint32_t rte_power_set_freq(unsigned int lcore_id, uint32_t index);
148
162int rte_power_freq_up(unsigned int lcore_id);
163
177int rte_power_freq_down(unsigned int lcore_id);
178
192int rte_power_freq_max(unsigned int lcore_id);
193
207int rte_power_freq_min(unsigned int lcore_id);
208
221int rte_power_turbo_status(unsigned int lcore_id);
222
234int rte_power_freq_enable_turbo(unsigned int lcore_id);
235
247int 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
276int 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)