[PATCH] Enable haltpoll for arm64

From: Mihai Carabas
Date: Wed Aug 09 2023 - 08:53:37 EST


This patchset enables the usage of haltpoll governer on arm64. This is
specifically interesting for KVM guests.

Here are some benchmarks without/with haltpoll for a KVM guest:

a) without haltpoll:
perf bench sched pipe
# Running 'sched/pipe' benchmark:
# Executed 1000000 pipe operations between two processes

Total time: 8.410 [sec]

8.410882 usecs/op
118893 ops/sec

b) with haltpoll:
perf bench sched pipe
# Running 'sched/pipe' benchmark:
# Executed 1000000 pipe operations between two processes
Total time: 5.183 [sec]
5.183491 usecs/op
192920 ops/sec

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

arch/Kconfig | 3 +++
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/thread_info.h | 6 ++++++
arch/x86/Kconfig | 1 +
arch/x86/include/asm/cpuidle_haltpoll.h | 1 +
arch/x86/kernel/kvm.c | 6 ++++++
drivers/cpuidle/Kconfig | 4 ++--
drivers/cpuidle/cpuidle-haltpoll.c | 6 ++++--
drivers/cpuidle/governors/haltpoll.c | 5 +----
include/linux/cpuidle_haltpoll.h | 5 +++++
10 files changed, 30 insertions(+), 8 deletions(-)

--
1.8.3.1