DPDK 25.03.0-rc0
Functions
rte_power_cpufreq.h File Reference
#include <rte_common.h>
#include <rte_log.h>
#include "power_cpufreq.h"

Go to the source code of this file.

Functions

int rte_power_check_env_supported (enum power_management_env env)
 
int rte_power_set_env (enum power_management_env env)
 
void rte_power_unset_env (void)
 
enum power_management_env rte_power_get_env (void)
 
int rte_power_init (unsigned int lcore_id)
 
int rte_power_exit (unsigned int lcore_id)
 
uint32_t rte_power_freqs (unsigned int lcore_id, uint32_t *freqs, uint32_t num)
 
uint32_t rte_power_get_freq (unsigned int lcore_id)
 
uint32_t rte_power_set_freq (unsigned int lcore_id, uint32_t index)
 
int rte_power_freq_up (unsigned int lcore_id)
 
int rte_power_freq_down (unsigned int lcore_id)
 
int rte_power_freq_max (unsigned int lcore_id)
 
int rte_power_freq_min (unsigned int lcore_id)
 
int rte_power_turbo_status (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_get_capabilities (unsigned int lcore_id, struct rte_power_core_capabilities *caps)
 

Detailed Description

CPU Frequency Management

Definition in file rte_power_cpufreq.h.

Function Documentation

◆ rte_power_check_env_supported()

int rte_power_check_env_supported ( enum power_management_env  env)

Check if a specific power management environment type is supported on a currently running system.

Parameters
envThe environment type to check support for.
Returns
  • 1 if supported
  • 0 if unsupported
  • -1 if error, with rte_errno indicating reason for error.
Examples
examples/l3fwd-power/main.c.

◆ rte_power_set_env()

int rte_power_set_env ( enum power_management_env  env)

Set the default power management implementation. If this is not called prior to rte_power_init(), then auto-detect of the environment will take place. It is thread safe. New env can be set only in uninitialized state (thus rte_power_unset_env must be called if different env was already set).

Parameters
envenv. The environment in which to initialise Power Management for.
Returns
  • 0 on success.
  • Negative on error.
Examples
examples/vm_power_manager/guest_cli/main.c, and examples/vm_power_manager/power_manager.c.

◆ rte_power_unset_env()

void rte_power_unset_env ( void  )

Unset the global environment configuration. This can only be called after all threads have completed.

◆ rte_power_get_env()

enum power_management_env rte_power_get_env ( void  )

Get the default power management implementation.

Returns
power_management_env The configured environment.
Examples
examples/l3fwd-power/main.c, and examples/l3fwd-power/perf_core.c.

◆ rte_power_init()

int rte_power_init ( unsigned int  lcore_id)

Initialize power management for a specific lcore. If rte_power_set_env() has not been called then an auto-detect of the environment will start and initialise the corresponding resources.

Parameters
lcore_idlcore id.
Returns
  • 0 on success.
  • Negative on error.
Examples
examples/distributor/main.c, examples/l3fwd-power/main.c, examples/vm_power_manager/guest_cli/main.c, and examples/vm_power_manager/power_manager.c.

◆ rte_power_exit()

int rte_power_exit ( unsigned int  lcore_id)

Exit power management on a specific lcore. This will call the environment dependent exit function.

Parameters
lcore_idlcore id.
Returns
  • 0 on success.
  • Negative on error.
Examples
examples/distributor/main.c, examples/l3fwd-power/main.c, examples/vm_power_manager/guest_cli/main.c, examples/vm_power_manager/guest_cli/vm_power_cli_guest.c, and examples/vm_power_manager/power_manager.c.

◆ rte_power_freqs()

uint32_t rte_power_freqs ( unsigned int  lcore_id,
uint32_t *  freqs,
uint32_t  num 
)

Get the available frequencies of a specific lcore. Function pointer definition. Review each environments specific documentation for usage.

Parameters
lcore_idlcore id.
freqsThe buffer array to save the frequencies.
numThe number of frequencies to get.
Returns
The number of available frequencies.
Examples
examples/vm_power_manager/power_manager.c.

◆ rte_power_get_freq()

uint32_t rte_power_get_freq ( unsigned int  lcore_id)

Return the current index of available frequencies of a specific lcore. Function pointer definition. Review each environments specific documentation for usage.

Parameters
lcore_idlcore id.
Returns
The current index of available frequencies.
Examples
examples/vm_power_manager/power_manager.c.

◆ rte_power_set_freq()

uint32_t rte_power_set_freq ( unsigned int  lcore_id,
uint32_t  index 
)

Set the new frequency for a specific lcore by indicating the index of available frequencies. Function pointer definition. Review each environments specific documentation for usage.

Parameters
lcore_idlcore id.
indexThe index of available frequencies.
Returns
  • 1 on success with frequency changed.
  • 0 on success without frequency changed.
  • Negative on error.
Examples
examples/vm_power_manager/power_manager.c.

◆ rte_power_freq_up()

int rte_power_freq_up ( unsigned int  lcore_id)

Scale up the frequency of a specific lcore according to the available frequencies. Review each environments specific documentation for usage.

Parameters
lcore_idlcore id.
Returns
  • 1 on success with frequency changed.
  • 0 on success without frequency changed.
  • Negative on error.
Examples
examples/l3fwd-power/main.c, and examples/vm_power_manager/guest_cli/vm_power_cli_guest.c.

◆ rte_power_freq_down()

int rte_power_freq_down ( unsigned int  lcore_id)

Scale down the frequency of a specific lcore according to the available frequencies. Review each environments specific documentation for usage.

Parameters
lcore_idlcore id.
Returns
  • 1 on success with frequency changed.
  • 0 on success without frequency changed.
  • Negative on error.
Examples
examples/l3fwd-power/main.c, and examples/vm_power_manager/guest_cli/vm_power_cli_guest.c.

◆ rte_power_freq_max()

int rte_power_freq_max ( unsigned int  lcore_id)

Scale up the frequency of a specific lcore to the highest according to the available frequencies. Review each environments specific documentation for usage.

Parameters
lcore_idlcore id.
Returns
  • 1 on success with frequency changed.
  • 0 on success without frequency changed.
  • Negative on error.
Examples
examples/l3fwd-power/main.c, and examples/vm_power_manager/guest_cli/vm_power_cli_guest.c.

◆ rte_power_freq_min()

int rte_power_freq_min ( unsigned int  lcore_id)

Scale down the frequency of a specific lcore to the lowest according to the available frequencies. Review each environments specific documentation for usage..

Parameters
lcore_idlcore id.
Returns
  • 1 on success with frequency changed.
  • 0 on success without frequency changed.
  • Negative on error.
Examples
examples/vm_power_manager/guest_cli/vm_power_cli_guest.c.

◆ rte_power_turbo_status()

int rte_power_turbo_status ( unsigned int  lcore_id)

Query the Turbo Boost status of a specific lcore. Review each environments specific documentation for usage..

Parameters
lcore_idlcore id.
Returns
  • 1 turbo boost enabled.
  • 0 turbo boost disabled.
  • Negative on error.

◆ rte_power_freq_enable_turbo()

int rte_power_freq_enable_turbo ( unsigned int  lcore_id)

Enable Turbo Boost for this lcore. Review each environments specific documentation for usage..

Parameters
lcore_idlcore id.
Returns
  • 0 on success.
  • Negative on error.
Examples
examples/vm_power_manager/guest_cli/vm_power_cli_guest.c.

◆ rte_power_freq_disable_turbo()

int rte_power_freq_disable_turbo ( unsigned int  lcore_id)

Disable Turbo Boost for this lcore. Review each environments specific documentation for usage..

Parameters
lcore_idlcore id.
Returns
  • 0 on success.
  • Negative on error.
Examples
examples/vm_power_manager/guest_cli/vm_power_cli_guest.c.

◆ rte_power_get_capabilities()

int rte_power_get_capabilities ( unsigned int  lcore_id,
struct rte_power_core_capabilities *  caps 
)

Returns power capabilities for a specific lcore. Function pointer definition. Review each environments specific documentation for usage.

Parameters
lcore_idlcore id.
capspointer to rte_power_core_capabilities object.
Returns
  • 0 on success.
  • Negative on error.
Examples
examples/distributor/main.c, examples/l3fwd-power/perf_core.c, and examples/vm_power_manager/channel_monitor.c.