[RFC 2/3] event/cnxk: add pause to spinloops

Stephen Hemminger stephen at networkplumber.org
Wed Jan 21 22:01:26 CET 2026


On Wed, 21 Jan 2026 10:05:43 -0800
Stephen Hemminger <stephen at networkplumber.org> wrote:

> diff --git a/drivers/event/cnxk/cnxk_tim_worker.h b/drivers/event/cnxk/cnxk_tim_worker.h
> index 09f84091ab..887c0800e2 100644
> --- a/drivers/event/cnxk/cnxk_tim_worker.h
> +++ b/drivers/event/cnxk/cnxk_tim_worker.h
> @@ -405,9 +405,9 @@ cnxk_tim_add_entry_mp(struct cnxk_tim_ring *const tim_ring,
>  			     : [crem] "r"(&bkt->w1)
>  			     : "memory");
>  #else
> -		while (rte_atomic_load_explicit((int64_t __rte_atomic *)&bkt->w1,
> +		while (rte_atomic_load_explicit((int64_t __rte_atomic  *)&bkt->w1,
>  						rte_memory_order_relaxed) < 0)
> -			;
> +			rte_pause();
>  #endif

I noticed while looking at the code there is assembly to do the wait for instructions.
Why doesn't this driver use the rte_unit_equal_64 instead?


More information about the dev mailing list