[PATCH v2 0/5] KVM: arm64: Reorganise vcpu first run

Marc Zyngier maz at kernel.org
Mon Oct 18 14:11:53 PDT 2021


This is v2 of this series reworking the vcpu first run.

KVM/arm64 relies heavily on a bunch of things to be done on the first
run of the vcpu. We also do a bunch of things on PID change. It turns
out that these two things are pretty similar (the first PID change is
also the first run).

This small series aims at simplifying all that, and to get rid of the
vcpu->arch.has_run_once state. On top of being a decent cleanup, it
also results in a minor performance improvement (my Debian installer
on M1 consistently went from 2:23 down to 2:22, a ~0.6% reduction in
execution time).

* From v1 [1]:
  - Moved the kvm_vcpu_initialized() check into kvm_vcpu_first_run_init()
  - Reorganise the series so that the userspace irqchip static key
    change appears earlier
  - Collected Andrew's RBs

[1] https://lore.kernel/org/r/20211015090822.2994920-1-maz@kernel.org

Marc Zyngier (5):
  KVM: arm64: Move SVE state mapping at HYP to finalize-time
  KVM: arm64: Move kvm_arch_vcpu_run_pid_change() out of line
  KVM: arm64: Restructure the point where has_run_once is advertised
  KVM: arm64: Merge kvm_arch_vcpu_run_pid_change() and
    kvm_vcpu_first_run_init()
  KVM: arm64: Drop vcpu->arch.has_run_once for vcpu->pid

 arch/arm64/include/asm/kvm_host.h | 12 ++-----
 arch/arm64/kvm/arm.c              | 57 +++++++++++++++++--------------
 arch/arm64/kvm/fpsimd.c           | 11 ------
 arch/arm64/kvm/reset.c            | 11 +++++-
 arch/arm64/kvm/vgic/vgic-init.c   |  2 +-
 5 files changed, 46 insertions(+), 47 deletions(-)

-- 
2.30.2




More information about the linux-arm-kernel mailing list