[PATCH] Enable haltpoll for arm64

Peter Zijlstra peterz at infradead.org
Wed Aug 9 06:48:37 PDT 2023


On Wed, Aug 09, 2023 at 02:39:34PM +0300, Mihai Carabas wrote:

> Joao Martins (7):
>   cpuidle-haltpoll: Make boot_option_idle_override check X86 specific
>   x86: Move ARCH_HAS_CPU_RELAX to arch
>   x86/kvm: Move haltpoll_want() to be arch defined
>   governors/haltpoll: Drop kvm_para_available() check
>   arm64: Select ARCH_HAS_CPU_RELAX
>   arm64: Define TIF_POLLING_NRFLAG
>   cpuidle-haltpoll: ARM64 support

You have far too many SOB's on some or all of these patches.

Using poll_state as is on arm64 seems sub-optimal, would not something
like the below make sense?

---
diff --git a/drivers/cpuidle/poll_state.c b/drivers/cpuidle/poll_state.c
index 9b6d90a72601..9ab40198b042 100644
--- a/drivers/cpuidle/poll_state.c
+++ b/drivers/cpuidle/poll_state.c
@@ -27,7 +27,11 @@ static int __cpuidle poll_idle(struct cpuidle_device *dev,
 		limit = cpuidle_poll_time(drv, dev);
 
 		while (!need_resched()) {
-			cpu_relax();
+
+			smp_cond_load_relaxed(current_thread_info()->flags,
+					      (VAL & TIF_NEED_RESCHED) ||
+					      (loop_count++ >= POLL_IDLE_RELAX_COUNT));
+
 			if (loop_count++ < POLL_IDLE_RELAX_COUNT)
 				continue;
 



More information about the linux-arm-kernel mailing list