mbox series

[v3,00/15] KVM: arm64: nv: FPSIMD/SVE, plus some other CPTR goodies

Message ID 20240620164653.1130714-1-oliver.upton@linux.dev (mailing list archive)
Headers show
Series KVM: arm64: nv: FPSIMD/SVE, plus some other CPTR goodies | expand

Message

Oliver Upton June 20, 2024, 4:46 p.m. UTC
v2 -> v3:
 - Reorder patches to fix bisection (Marc)
 - Use helper that returns ZCR_ELx offset, so it can be used to handle
   reads and writes (Marc)

v2: https://lore.kernel.org/kvmarm/20240613201756.3258227-1-oliver.upton@linux.dev/

Jintack Lim (1):
  KVM: arm64: nv: Forward FP/ASIMD traps to guest hypervisor

Marc Zyngier (4):
  KVM: arm64: nv: Handle CPACR_EL1 traps
  KVM: arm64: nv: Add TCPAC/TTA to CPTR->CPACR conversion helper
  KVM: arm64: nv: Add trap description for CPTR_EL2
  KVM: arm64: nv: Add additional trap setup for CPTR_EL2

Oliver Upton (10):
  KVM: arm64: nv: Forward SVE traps to guest hypervisor
  KVM: arm64: nv: Handle ZCR_EL2 traps
  KVM: arm64: nv: Load guest hyp's ZCR into EL1 state
  KVM: arm64: nv: Save guest's ZCR_EL2 when in hyp context
  KVM: arm64: nv: Use guest hypervisor's max VL when running nested
    guest
  KVM: arm64: nv: Ensure correct VL is loaded before saving SVE state
  KVM: arm64: Spin off helper for programming CPTR traps
  KVM: arm64: nv: Load guest FP state for ZCR_EL2 trap
  KVM: arm64: nv: Honor guest hypervisor's FP/SVE traps in CPTR_EL2
  KVM: arm64: Allow the use of SVE+NV

 arch/arm64/include/asm/kvm_emulate.h    |  55 +++++++++
 arch/arm64/include/asm/kvm_host.h       |   6 +
 arch/arm64/include/asm/kvm_nested.h     |   4 +-
 arch/arm64/kvm/arm.c                    |   5 -
 arch/arm64/kvm/emulate-nested.c         |  91 ++++++++++++++
 arch/arm64/kvm/fpsimd.c                 |  19 ++-
 arch/arm64/kvm/handle_exit.c            |  19 ++-
 arch/arm64/kvm/hyp/include/hyp/switch.h |  24 +++-
 arch/arm64/kvm/hyp/vhe/switch.c         | 156 ++++++++++++++++++++----
 arch/arm64/kvm/nested.c                 |   3 +-
 arch/arm64/kvm/sys_regs.c               |  38 ++++++
 11 files changed, 376 insertions(+), 44 deletions(-)


base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0

Comments

Oliver Upton June 20, 2024, 8:02 p.m. UTC | #1
On Thu, 20 Jun 2024 16:46:37 +0000, Oliver Upton wrote:
> v2 -> v3:
>  - Reorder patches to fix bisection (Marc)
>  - Use helper that returns ZCR_ELx offset, so it can be used to handle
>    reads and writes (Marc)
> 
> v2: https://lore.kernel.org/kvmarm/20240613201756.3258227-1-oliver.upton@linux.dev/
> 
> [...]

Applied to kvmarm/next, thanks!

[01/15] KVM: arm64: nv: Forward FP/ASIMD traps to guest hypervisor
        https://git.kernel.org/kvmarm/kvmarm/c/d2b2ecba8ddb
[02/15] KVM: arm64: nv: Forward SVE traps to guest hypervisor
        https://git.kernel.org/kvmarm/kvmarm/c/399debfc9749
[03/15] KVM: arm64: nv: Handle ZCR_EL2 traps
        https://git.kernel.org/kvmarm/kvmarm/c/b3d29a823099
[04/15] KVM: arm64: nv: Load guest hyp's ZCR into EL1 state
        https://git.kernel.org/kvmarm/kvmarm/c/069da3ffdadf
[05/15] KVM: arm64: nv: Save guest's ZCR_EL2 when in hyp context
        https://git.kernel.org/kvmarm/kvmarm/c/b7e5c9426429
[06/15] KVM: arm64: nv: Use guest hypervisor's max VL when running nested guest
        https://git.kernel.org/kvmarm/kvmarm/c/9092aca9fe9a
[07/15] KVM: arm64: nv: Ensure correct VL is loaded before saving SVE state
        https://git.kernel.org/kvmarm/kvmarm/c/2e3cf82063a0
[08/15] KVM: arm64: Spin off helper for programming CPTR traps
        https://git.kernel.org/kvmarm/kvmarm/c/1785f020b112
[09/15] KVM: arm64: nv: Handle CPACR_EL1 traps
        https://git.kernel.org/kvmarm/kvmarm/c/493da2b1c49a
[10/15] KVM: arm64: nv: Load guest FP state for ZCR_EL2 trap
        https://git.kernel.org/kvmarm/kvmarm/c/0cfc85b8f5cf
[11/15] KVM: arm64: nv: Honor guest hypervisor's FP/SVE traps in CPTR_EL2
        https://git.kernel.org/kvmarm/kvmarm/c/5326303bb7d9
[12/15] KVM: arm64: nv: Add TCPAC/TTA to CPTR->CPACR conversion helper
        https://git.kernel.org/kvmarm/kvmarm/c/0edc60fd6e9e
[13/15] KVM: arm64: nv: Add trap description for CPTR_EL2
        https://git.kernel.org/kvmarm/kvmarm/c/e19d533126ac
[14/15] KVM: arm64: nv: Add additional trap setup for CPTR_EL2
        https://git.kernel.org/kvmarm/kvmarm/c/cd931bd6093c
[15/15] KVM: arm64: Allow the use of SVE+NV
        https://git.kernel.org/kvmarm/kvmarm/c/f1ee914fb626

--
Best,
Oliver