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

FreeBSD Manual Pages

  
 
  

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
       architecture-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
       signature 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 memory	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 entering	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
	   behavior 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
       monitoring an address.

       Note
	   It is safe to call this function if the lcore in question is	not
	   sleeping. 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
	   behavior 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 specified 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 optimized 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
	   behavior 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 Jun	11 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