|
DPDK
20.11.10
|
Go to the source code of this file.
Functions | |
| static __rte_experimental void | rte_power_monitor (const volatile void *p, const uint64_t expected_value, const uint64_t value_mask, const uint64_t tsc_timestamp, const uint8_t data_sz) |
| static __rte_experimental void | rte_power_monitor_sync (const volatile void *p, const uint64_t expected_value, const uint64_t value_mask, const uint64_t tsc_timestamp, const uint8_t data_sz, rte_spinlock_t *lck) |
| static __rte_experimental void | rte_power_pause (const uint64_t tsc_timestamp) |
Advanced power management operations.
This file define APIs for advanced power management, which are architecture-dependent.
Definition in file rte_power_intrinsics.h.
|
inlinestatic |
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 64-bit value and 64-bit mask 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 match, the entering of optimized power state may be aborted.
rte_cpu_get_intrinsics_support() API call. Failing to do so may result in an illegal CPU instruction error.| p | Address to monitor for changes. |
| expected_value | Before attempting the monitoring, the p address may be read and compared against this value. If value_mask is zero, this step will be skipped. |
| value_mask | The 64-bit mask to use to extract current value from p. |
| tsc_timestamp | Maximum TSC timestamp to wait for. Note that the wait behavior is architecture-dependent. |
| data_sz | Data size (in bytes) that will be used to compare expected value with the memory address. Can be 1, 2, 4 or 8. Supplying any other value will lead to undefined result. |
|
inlinestatic |
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 64-bit value and 64-bit mask 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 match, the entering of optimized power state may be aborted.
This call will also lock a spinlock on entering sleep, and release it on waking up the CPU.
rte_cpu_get_intrinsics_support() API call. Failing to do so may result in an illegal CPU instruction error.| p | Address to monitor for changes. |
| expected_value | Before attempting the monitoring, the p address may be read and compared against this value. If value_mask is zero, this step will be skipped. |
| value_mask | The 64-bit mask to use to extract current value from p. |
| tsc_timestamp | Maximum TSC timestamp to wait for. Note that the wait behavior is architecture-dependent. |
| data_sz | Data size (in bytes) that will be used to compare expected value with the memory address. Can be 1, 2, 4 or 8. Supplying any other value will lead to undefined result. |
| lck | A spinlock that must be locked before entering the function, will be unlocked while the CPU is sleeping, and will be locked again once the CPU wakes up. |
|
inlinestatic |
Enter an architecture-defined optimized power state until a certain TSC timestamp is reached.
rte_cpu_get_intrinsics_support() API call. Failing to do so may result in an illegal CPU instruction error.| tsc_timestamp | Maximum TSC timestamp to wait for. Note that the wait behavior is architecture-dependent. |
1.8.13