Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
rte_power_intrinsics.h(3)	      DPDK	       rte_power_intrinsics.h(3)

NAME
     rte_power_intrinsics.h

SYNOPSIS
     #include <inttypes.h>
     #include <rte_spinlock.h>

   Macros
     #define RTE_POWER_MONITOR_OPAQUE_SZ   4

   Typedefs
     typedef  int(* rte_power_monitor_clb_t) (const uint64_t val, const uint64_t
	 opaque[RTE_POWER_MONITOR_OPAQUE_SZ])

   Functions
     int rte_power_monitor  (const  struct  rte_power_monitor_cond  *pmc,  const
	 uint64_t tsc_timestamp)
     int rte_power_monitor_wakeup (const unsigned int lcore_id)
     int rte_power_pause (const uint64_t tsc_timestamp)
     int  rte_power_monitor_multi  (const  struct  rte_power_monitor_cond pmc[],
	 const uint32_t num, const uint64_t tsc_timestamp)

Detailed Description
     Advanced power management operations.

     This file define APIs for advanced power management,  which  are  architec-
     ture-dependent.

     Definition in file rte_power_intrinsics.h.

Macro Definition Documentation
   #define RTE_POWER_MONITOR_OPAQUE_SZ	 4
     Size of the opaque data in monitor condition

     Definition at line 25 of file rte_power_intrinsics.h.

Typedef Documentation
   typedef  int(*  rte_power_monitor_clb_t)  (const uint64_t val, const uint64_t
     opaque[RTE_POWER_MONITOR_OPAQUE_SZ])
     Callback definition for monitoring conditions. Callbacks with  this  signa-
     ture  will be used by rte_power_monitor() to check if the entering of power
     optimized state should be aborted.

     Parameters
	 val The value read from memory.
	 opaque Callback-specific data.

     Returns
	 0 if entering of power optimized state should proceed -1 if entering of
	 power optimized state should be aborted

     Definition at line 41 of file rte_power_intrinsics.h.

Function Documentation
   int rte_power_monitor  (const  struct  rte_power_monitor_cond  *  pmc,  const
     uint64_t tsc_timestamp)
     Monitor  specific	address for changes. This will cause the CPU to enter an
     architecture-defined optimized power state until either the specified  mem-
     ory  address  is  written	to, a certain TSC timestamp is reached, or other
     reasons cause the CPU to wake up.

     Additionally, an expected value (pmc->val), mask (pmc->mask), and data size
     (pmc->size) are provided in the pmc power monitoring condition. If the mask
     is non-zero, the current value pointed to by the pmc->addr pointer will  be
     read and compared against the expected value, and if they match, the enter-
     ing  of  optimized power state will be aborted. This is intended to prevent
     the CPU from entering optimized power state and waiting on a write that has
     already happened by the time this API is called.

     Warning
	 It is responsibility of the user to check if this function is supported
	 at runtime using rte_cpu_get_intrinsics_support() API call.

     Parameters
	 pmc The monitoring condition structure.
	 tsc_timestamp Maximum TSC timestamp to wait for. Note that the wait be-
	 havior is architecture-dependent.

     Returns
	 0 on success -EINVAL on invalid parameters -ENOTSUP if unsupported

   int rte_power_monitor_wakeup (const unsigned int lcore_id)
     Wake up a specific lcore that is in a power optimized state and is monitor-
     ing an address.

     Note
	 It is safe to call this function if the lcore in question is not sleep-
	 ing. The function will have no effect.

	 This function will not wake up a core that  is  in  a	power  optimized
	 state due to calling rte_power_pause.

     Parameters
	 lcore_id Lcore ID of a sleeping thread.

   int rte_power_pause (const uint64_t tsc_timestamp)
     Enter  an	architecture-defined  optimized  power state until a certain TSC
     timestamp is reached.

     Warning
	 It is responsibility of the user to check if this function is supported
	 at runtime using rte_cpu_get_intrinsics_support() API call.

     Parameters
	 tsc_timestamp Maximum TSC timestamp to wait for. Note that the wait be-
	 havior is architecture-dependent.

     Returns
	 0 on success -EINVAL on invalid parameters -ENOTSUP if unsupported

   int rte_power_monitor_multi (const struct rte_power_monitor_cond pmc[], const
     uint32_t num, const uint64_t tsc_timestamp)
     Monitor a set of addresses for changes. This will cause the CPU to enter an
     architecture-defined optimized power state until either one of  the  speci-
     fied memory addresses is written to, a certain TSC timestamp is reached, or
     other reasons cause the CPU to wake up.

     Additionally, expected 64-bit values and 64-bit masks are provided. If mask
     is  non-zero, the current value pointed to by the p pointer will be checked
     against the expected value, and if they do not match, the entering of opti-
     mized power state may be aborted.

     Warning
	 It is responsibility of the user to check if this function is supported
	 at runtime using rte_cpu_get_intrinsics_support() API call. Failing  to
	 do so may result in an illegal CPU instruction error.

     Parameters
	 pmc An array of monitoring condition structures.
	 num Length of the pmc array.
	 tsc_timestamp Maximum TSC timestamp to wait for. Note that the wait be-
	 havior is architecture-dependent.

     Returns
	 0 on success -EINVAL on invalid parameters -ENOTSUP if unsupported

Author
     Generated automatically by Doxygen for DPDK from the source code.

Version 25.11.0 		 Thu Aug 27 2026       rte_power_intrinsics.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=RTE_POWER_MONITOR_OPAQUE_SZ&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help