Re: [PATCH v2] Enable haltpoll for arm64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

How can we move this patchset forward?

Thank you,
Mihai

La 20.11.2023 16:01, Mihai Carabas a scris:
This patchset enables the usage of haltpoll governer on arm64. This is
specifically interesting for KVM guests by reducing the IPC latencies.

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.138 [sec]

             8.138094 usecs/op
              122878 ops/sec

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

      Total time: 5.003 [sec]

             5.003085 usecs/op
              199876 ops/sec

v2 changes from v1:
- added patch 7 where we change cpu_relax with smp_cond_load_relaxed per PeterZ
   (this improves by 50% at least the CPU cycles consumed in the tests above:
   10,716,881,137 now vs 14,503,014,257 before)
- removed the ifdef from patch 1 per RafaelW


Joao Martins (6):
   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

Mihai Carabas (1):
   cpuidle/poll_state: replace cpu_relax with smp_cond_load_relaxed

  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                   | 10 ++++++++++
  drivers/cpuidle/Kconfig                 |  4 ++--
  drivers/cpuidle/cpuidle-haltpoll.c      |  8 ++------
  drivers/cpuidle/governors/haltpoll.c    |  5 +----
  drivers/cpuidle/poll_state.c            | 14 +++++++++-----
  include/linux/cpuidle_haltpoll.h        |  5 +++++
  11 files changed, 41 insertions(+), 17 deletions(-)






[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux