[PATCH v15 12/16] cpuidle/poll_state: Wait for need-resched via tif_need_resched_relaxed_wait()

Haris Okanovic harisokn at amazon.com
Thu Sep 10 16:04:27 PDT 2026


On Mon, 31 Aug 2026 13:22:47 -0700, Ankur Arora <ankur.a.arora at oracle.com> wrote:
> diff --git a/drivers/cpuidle/poll_state.c b/drivers/cpuidle/poll_state.c
> index c7524e4c522a2..7443b3e971baf 100644
> --- a/drivers/cpuidle/poll_state.c
> +++ b/drivers/cpuidle/poll_state.c
> @@ -6,41 +6,22 @@
> [ ... skip 36 lines ... ]
> -			}
> -		}
> +		dev->poll_time_limit = !tif_need_resched_relaxed_wait(limit);
>  	}
>  	raw_local_irq_disable();
>  

Tested again on AWS Graviton3/4/5 (ARM Neoverse V1/V2/V3) with haltpoll changes
atop latest master 8ab1afb2e: still seeing average 6% improvement across various
workloads (mysql, postgresql, cassandra, memcached) in latency sensitive configuration.

The new unit tests all pass on both metal and virt variants of the same machines.

I hope we can merge this soon.

Tested-by: Haris Okanovic <harisokn at amazon.com>

-- 
Haris Okanovic
AWS Graviton




More information about the linux-arm-kernel mailing list