Skip to content

KVM: arm64: Prefix patches for NV support

Marc Zyngier kvm kvmarm linux-arm-kernel 1 version Applied

Status from this message: Applied to kvmarm/next, thanks!

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest18 patches 8 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/18arm64: Add ARM64_HAS_NESTED_VIRT cpufeatureDocumentation/admin-guide/kernel-parameters.txt arch/arm64/include/asm/kvm_host.h arch/arm64/kernel/cpufeature.c +2 more+42 -10 replies
2/18KVM: arm64: Use the S2 MMU context to iterate over S2 tablearch/arm64/kvm/mmu.c+8 -81 reply
3/18KVM: arm64: nv: Introduce nested virtualization VCPU featurearch/arm64/include/asm/kvm_nested.h arch/arm64/include/uapi/asm/kvm.h+15 -00 replies
4/18KVM: arm64: nv: Reset VCPU to EL2 registers if VCPU nested virt is setarch/arm64/kvm/reset.c+16 -00 replies
5/18KVM: arm64: nv: Allow userspace to set PSR_MODE_EL2xarch/arm64/kvm/guest.c+6 -00 replies
6/18KVM: arm64: nv: Add EL2 system registers to vcpu contextarch/arm64/include/asm/kvm_host.h+32 -10 replies
7/18KVM: arm64: nv: Add nested virt VCPU primitives for vEL2 VCPU statearch/arm64/include/asm/kvm_emulate.h+56 -00 replies
8/18KVM: arm64: nv: Handle HCR_EL2.NV system register trapsarch/arm64/include/asm/sysreg.h arch/arm64/kvm/sys_regs.c+131 -63 replies
9/18KVM: arm64: nv: Support virtual EL2 exceptionsarch/arm64/include/asm/kvm_arm.h arch/arm64/include/asm/kvm_emulate.h arch/arm64/include/asm/kvm_host.h +5 more+382 -200 replies
10/18KVM: arm64: nv: Inject HVC exceptions to the virtual EL2arch/arm64/kvm/handle_exit.c+11 -00 replies
11/18KVM: arm64: nv: Handle trapped ERET from virtual EL2arch/arm64/include/asm/esr.h arch/arm64/include/asm/kvm_arm.h arch/arm64/kvm/handle_exit.c+15 -10 replies
12/18KVM: arm64: nv: Handle PSCI call via smc from the guestarch/arm64/kvm/handle_exit.c+22 -23 replies
13/18KVM: arm64: nv: Add accessors for SPSR_EL1, ELR_EL1 and VBAR_EL1 from virtual EL2arch/arm64/kvm/sys_regs.c+28 -10 replies
14/18KVM: arm64: nv: Emulate PSTATE.M for a guest hypervisorarch/arm64/include/asm/kvm_host.h arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h arch/arm64/kvm/hyp/vhe/switch.c+44 -10 replies
15/18KVM: arm64: nv: Allow a sysreg to be hidden from userspace onlyarch/arm64/kvm/sys_regs.c arch/arm64/kvm/sys_regs.h+15 -50 replies
16/18KVM: arm64: nv: Emulate EL12 register accesses from the virtual EL2arch/arm64/kvm/sys_regs.c+37 -00 replies
17/18KVM: arm64: nv: Filter out unsupported features from ID regsarch/arm64/include/asm/kvm_nested.h arch/arm64/kvm/Makefile arch/arm64/kvm/nested.c +1 more+172 -10 replies
18/18KVM: arm64: nv: Only toggle cache for virtual EL2 when SCTLR_EL2 changesarch/arm64/include/asm/kvm_mmu.h+10 -10 replies

Reviews trailers per patch

All 18 patches have a Reviewed-by or Acked-by.

PatchRussell King (Oracle)Catalin MarinasGanapatrao KulkarniAlexandru EliseiAndre Przywara
1/18R-b A-b
2/18R-b
3/18R-b R-b
4/18R-b R-b
5/18R-b
6/18R-b R-b
7/18R-b
8/18R-b
9/18R-b
10/18R-b R-b
11/18R-b R-b
12/18R-b
13/18R-b
14/18R-b R-b
15/18R-b
16/18R-b
17/18R-b
18/18R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.

Read the v1 thread

Cover letter [PATCH 00/18] KVM: arm64: Prefix patches for NV support

As a bunch of the NV patches have had a decent amount of review, and given that they do very little on their own, I've put together a prefix series that gets the most mundane stuff out of the way.

Of course, nothing is functional, but nothing gets used either. In a way, this is pretty similar to the current state of pKVM! ;-)

Thanks,

	M.

Christoffer Dall (6):
KVM: arm64: nv: Introduce nested virtualization VCPU feature
KVM: arm64: nv: Reset VCPU to EL2 registers if VCPU nested virt is set
KVM: arm64: nv: Allow userspace to set PSR_MODE_EL2x
KVM: arm64: nv: Add nested virt VCPU primitives for vEL2 VCPU state
KVM: arm64: nv: Handle trapped ERET from virtual EL2
KVM: arm64: nv: Only toggle cache for virtual EL2 when SCTLR_EL2
changes

Jintack Lim (7):
arm64: Add ARM64_HAS_NESTED_VIRT cpufeature
KVM: arm64: nv: Handle HCR_EL2.NV system register traps
KVM: arm64: nv: Support virtual EL2 exceptions
KVM: arm64: nv: Inject HVC exceptions to the virtual EL2
KVM: arm64: nv: Handle PSCI call via smc from the guest
KVM: arm64: nv: Add accessors for SPSR_EL1, ELR_EL1 and VBAR_EL1 from
virtual EL2
KVM: arm64: nv: Emulate EL12 register accesses from the virtual EL2

Marc Zyngier (5):
KVM: arm64: Use the S2 MMU context to iterate over S2 table
KVM: arm64: nv: Add EL2 system registers to vcpu context
KVM: arm64: nv: Emulate PSTATE.M for a guest hypervisor
KVM: arm64: nv: Allow a sysreg to be hidden from userspace only
KVM: arm64: nv: Filter out unsupported features from ID regs

 .../admin-guide/kernel-parameters.txt         |   7 +-
 arch/arm64/include/asm/esr.h                  |   4 +
 arch/arm64/include/asm/kvm_arm.h              |  19 +-
 arch/arm64/include/asm/kvm_emulate.h          |  66 ++++++
 arch/arm64/include/asm/kvm_host.h             |  42 +++-
 arch/arm64/include/asm/kvm_mmu.h              |  11 +-
 arch/arm64/include/asm/kvm_nested.h           |  20 ++
 arch/arm64/include/asm/sysreg.h               |  38 +++-
 arch/arm64/include/uapi/asm/kvm.h             |   1 +
 arch/arm64/kernel/cpufeature.c                |  25 +++
 arch/arm64/kvm/Makefile                       |   2 +-
 arch/arm64/kvm/arm.c                          |   5 +
 arch/arm64/kvm/emulate-nested.c               | 203 ++++++++++++++++++
 arch/arm64/kvm/guest.c                        |   6 +
 arch/arm64/kvm/handle_exit.c                  |  45 +++-
 arch/arm64/kvm/hyp/exception.c                |  48 +++--
 arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h    |  19 +-
 arch/arm64/kvm/hyp/vhe/switch.c               |  24 +++
 arch/arm64/kvm/inject_fault.c                 |  61 +++++-
 arch/arm64/kvm/mmu.c                          |  16 +-
 arch/arm64/kvm/nested.c                       | 162 ++++++++++++++
 arch/arm64/kvm/reset.c                        |  16 ++
 arch/arm64/kvm/sys_regs.c                     | 174 ++++++++++++++-
 arch/arm64/kvm/sys_regs.h                     |  14 +-
 arch/arm64/kvm/trace_arm.h                    |  59 +++++
 arch/arm64/tools/cpucaps                      |   1 +
 26 files changed, 1041 insertions(+), 47 deletions(-)
 create mode 100644 arch/arm64/include/asm/kvm_nested.h
 create mode 100644 arch/arm64/kvm/emulate-nested.c
 create mode 100644 arch/arm64/kvm/nested.c
Signature · 1 line
2.34.1