Polling in idle helps reduce the cost of remote wakeups: if the target sets TIF_POLLING_NRFLAG (as it does while polling in idle), the scheduler can do remote wakeups just by setting the TIF_NEED_RESCHED. This contrasts with sending an IPI, and incurring the cost of handling the cost of the interrupt on the receiver. Enabling poll_idle() needs a cheap mechanism to do the actual polling (via smp_cond_load_relaxed_timewait()) and TIF_POLLING_NRFLAG support. arm64 has both of these. So, select ARCH_HAS_OPTIMIZED_POLL. Signed-off-by: Ankur Arora <ankur.a.arora@xxxxxxxxxx> --- arch/arm64/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 100570a048c5..d96a6c6d8894 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -39,6 +39,7 @@ config ARM64 select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE select ARCH_HAS_NONLEAF_PMD_YOUNG if ARM64_HAFT + select ARCH_HAS_OPTIMIZED_POLL select ARCH_HAS_PTE_DEVMAP select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_HW_PTE_YOUNG -- 2.43.5