[PATCH v3 0/3] KVM: arm64: Use generic guest entry infrastructure

From: Oliver Upton
Date: Mon Aug 02 2021 - 15:28:20 EST


The arm64 kernel doesn't yet support the full generic entry
infrastructure. That being said, KVM/arm64 doesn't properly handle
TIF_NOTIFY_RESUME and could pick this up by switching to the generic
guest entry infrasturture.

Patch 1 adds a missing vCPU stat to ARM64 to record the number of signal
exits to userspace.

Patch 2 unhitches entry-kvm from entry-generic, as ARM64 doesn't
currently support the generic infrastructure.

Patch 3 replaces the open-coded entry handling with the generic xfer
function.

This series was tested on an Ampere Mt. Jade reference system. The
series cleanly applies to kvm/queue (note that this is deliberate as the
generic kvm stats patches have not yet propagated to kvm-arm/queue) at
the following commit:

8ad5e63649ff ("KVM: Don't take mmu_lock for range invalidation unless necessary")

v1 -> v2:
- Address Jing's comment
- Carry Jing's r-b tag

v2 -> v3:
- Roll all exit conditions into kvm_vcpu_exit_request() (Marc)
- Avoid needlessly checking for work twice (Marc)

v1: http://lore.kernel.org/r/20210729195632.489978-1-oupton@xxxxxxxxxx
v2: http://lore.kernel.org/r/20210729220916.1672875-1-oupton@xxxxxxxxxx

Oliver Upton (3):
KVM: arm64: Record number of signal exits as a vCPU stat
entry: KVM: Allow use of generic KVM entry w/o full generic support
KVM: arm64: Use generic KVM xfer to guest work function

arch/arm64/include/asm/kvm_host.h | 1 +
arch/arm64/kvm/Kconfig | 1 +
arch/arm64/kvm/arm.c | 71 +++++++++++++++++++------------
arch/arm64/kvm/guest.c | 1 +
include/linux/entry-kvm.h | 6 ++-
5 files changed, 52 insertions(+), 28 deletions(-)

--
2.32.0.554.ge1b32706d8-goog