[PATCH v2] eal/x86: enable timeout in AMD power monitor
Burakov, Anatoly
anatoly.burakov at intel.com
Tue Oct 14 10:56:28 CEST 2025
On 10/13/2025 7:51 AM, Sivaprasad Tummala wrote:
> Previously, the AMD power monitor implementation did not enable the
> timeout, causing the lcore to remain in a wait state until an external
> monitoring event occurred or an interrupt was received.
>
> This patch enables the timeout-based exit condition, allowing
> the lcore to automatically wake up after the specified period.
> The maximum supported timeout value is 2^32 - 1.
>
> Fixes: c7ed1ce04704 ("eal/x86: add power intrinsics for AMD")
> Cc: stable at dpdk.org
>
> Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala at amd.com>
>
> v2:
> 1. fixed asm compilation error.
> ---
> lib/eal/x86/rte_power_intrinsics.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/eal/x86/rte_power_intrinsics.c b/lib/eal/x86/rte_power_intrinsics.c
> index 489ad3983f..8a5f222aea 100644
> --- a/lib/eal/x86/rte_power_intrinsics.c
> +++ b/lib/eal/x86/rte_power_intrinsics.c
> @@ -89,14 +89,14 @@ static void amd_monitorx(volatile void *addr)
>
> static void amd_mwaitx(const uint64_t timeout)
> {
> - RTE_SET_USED(timeout);
> #if defined(RTE_TOOLCHAIN_MSVC) || defined(__MWAITX__)
> - _mm_mwaitx(0, 0, 0);
> + _mm_mwaitx(2, 0, (uint32_t)timeout);
> #else
> asm volatile(".byte 0x0f, 0x01, 0xfb;"
> : /* ignore rflags */
> : "a"(0), /* enter C1 */
> - "c"(0)); /* no time-out */
> + "b"((uint32_t)timeout),
> + "c"(2)); /* enable time-out */
> #endif
> }
>
Acked-by: Anatoly Burakov <anatoly.burakov at intel.com>
--
Thanks,
Anatoly
More information about the dev
mailing list