Scroll to navigation

rte_power.h(3) DPDK rte_power.h(3)

NAME

rte_power.h

SYNOPSIS

#include <rte_common.h>
#include <rte_log.h>
#include <rte_power_guest_channel.h>

Data Structures


struct rte_power_core_capabilities

Typedefs


typedef uint32_t(* rte_power_freqs_t) (unsigned int lcore_id, uint32_t *freqs, uint32_t num)
typedef uint32_t(* rte_power_get_freq_t) (unsigned int lcore_id)
typedef int(* rte_power_set_freq_t) (unsigned int lcore_id, uint32_t index)
typedef int(* rte_power_freq_change_t) (unsigned int lcore_id)
typedef int(* rte_power_get_capabilities_t) (unsigned int lcore_id, struct rte_power_core_capabilities *caps)

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)

Variables


rte_power_freq_change_t rte_power_freq_up
rte_power_freq_change_t rte_power_freq_down
rte_power_freq_change_t rte_power_freq_max
rte_power_freq_change_t rte_power_freq_min
rte_power_freq_change_t rte_power_turbo_status
rte_power_freq_change_t rte_power_freq_enable_turbo
rte_power_freq_change_t rte_power_freq_disable_turbo

Detailed Description

RTE Power Management

Definition in file rte_power.h.

Typedef Documentation

typedef uint32_t(* rte_power_freqs_t) (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_id lcore id.
freqs The buffer array to save the frequencies.
num The number of frequencies to get.

Returns

The number of available frequencies.

Definition at line 111 of file rte_power.h.

typedef uint32_t(* rte_power_get_freq_t) (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_id lcore id.

Returns

The current index of available frequencies.

Definition at line 127 of file rte_power.h.

typedef int(* rte_power_set_freq_t) (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_id lcore id.
index The index of available frequencies.

Returns

  • 1 on success with frequency changed.
  • 0 on success without frequency changed.
  • Negative on error.

Definition at line 147 of file rte_power.h.

typedef int(* rte_power_freq_change_t) (unsigned int lcore_id)

Function pointer definition for generic frequency change functions. Review each environments specific documentation for usage.

Parameters

lcore_id lcore id.

Returns

  • 1 on success with frequency changed.
  • 0 on success without frequency changed.
  • Negative on error.

Definition at line 163 of file rte_power.h.

typedef int(* rte_power_get_capabilities_t) (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_id lcore id.
caps pointer to rte_power_core_capabilities object.

Returns

  • 0 on success.
  • Negative on error.

Definition at line 238 of file rte_power.h.

Function Documentation

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

env The environment type to check support for.

Returns

  • 1 if supported
  • 0 if unsupported
  • -1 if error, with rte_errno indicating reason for error.

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

env env. The environment in which to initialise Power Management for.

Returns

  • 0 on success.
  • Negative on error.

void rte_power_unset_env (void)

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

enum power_management_env rte_power_get_env (void)

Get the default power management implementation.

Returns

power_management_env The configured environment.

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_id lcore id.

Returns

  • 0 on success.
  • Negative on error.

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_id lcore id.

Returns

  • 0 on success.
  • Negative on error.

Variable Documentation

rte_power_freq_change_t rte_power_freq_up [extern]

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

rte_power_freq_change_t rte_power_freq_down [extern]

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

rte_power_freq_change_t rte_power_freq_max [extern]

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

rte_power_freq_change_t rte_power_freq_min [extern]

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

rte_power_freq_change_t rte_power_turbo_status [extern]

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

rte_power_freq_change_t rte_power_freq_enable_turbo [extern]

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

rte_power_freq_change_t rte_power_freq_disable_turbo [extern]

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

Author

Generated automatically by Doxygen for DPDK from the source code.

Fri Dec 15 2023 Version 23.11.0