On Fri, 9 Jun 2023 17:21:43 +0100, Marc Zyngier wrote: > KVM (on ARMv8.0) and pKVM (on all revisions of the architecture) use > the split hypervisor model that makes the EL2 code more or less > standalone. In the later case, we totally ignore the VHE mode and > stick with the good old v8.0 EL2 setup. > > This is all good, but means that the EL2 code is limited in what it > can do with its own address space. This series proposes to remove this > limitation and to allow VHE to be used even with the split hypervisor > model. This has some potential isolation benefits[1], and eventually > allow systems that do not support HCR_EL2.E2H==0 to run pKVM. > > [...] I decided we should probably should have this in -next for a bit before sending a pull request. We can shove any fixes on top as needed. Applied to kvmarm/next, thanks! [01/17] KVM: arm64: Drop is_kernel_in_hyp_mode() from __invalidate_icache_guest_page() https://git.kernel.org/kvmarm/kvmarm/c/c4b9fd2ac035 [02/17] arm64: Prevent the use of is_kernel_in_hyp_mode() in hypervisor code https://git.kernel.org/kvmarm/kvmarm/c/35230be87ec6 [03/17] arm64: Turn kaslr_feature_override into a generic SW feature override https://git.kernel.org/kvmarm/kvmarm/c/0ddc312b7c73 [04/17] arm64: Add KVM_HVHE capability and has_hvhe() predicate https://git.kernel.org/kvmarm/kvmarm/c/e2d6c906f0ac [05/17] arm64: Don't enable VHE for the kernel if OVERRIDE_HVHE is set https://git.kernel.org/kvmarm/kvmarm/c/7a26e1f51e3c [06/17] arm64: Allow EL1 physical timer access when running VHE https://git.kernel.org/kvmarm/kvmarm/c/9e7462bbe00d [07/17] arm64: Use CPACR_EL1 format to set CPTR_EL2 when E2H is set https://git.kernel.org/kvmarm/kvmarm/c/659803aef48b [08/17] KVM: arm64: Remove alternatives from sysreg accessors in VHE hypervisor context https://git.kernel.org/kvmarm/kvmarm/c/57e784b4079e [09/17] KVM: arm64: Key use of VHE instructions in nVHE code off ARM64_KVM_HVHE https://git.kernel.org/kvmarm/kvmarm/c/6f617d3aa643 [10/17] KVM: arm64: Force HCR_EL2.E2H when ARM64_KVM_HVHE is set https://git.kernel.org/kvmarm/kvmarm/c/d0daf5a21e63 [11/17] KVM: arm64: Disable TTBR1_EL2 when using ARM64_KVM_HVHE https://git.kernel.org/kvmarm/kvmarm/c/cff3b5cf96ed [12/17] KVM: arm64: Adjust EL2 stage-1 leaf AP bits when ARM64_KVM_HVHE is set https://git.kernel.org/kvmarm/kvmarm/c/6537565fd9b7 [13/17] KVM: arm64: Rework CPTR_EL2 programming for HVHE configuration https://git.kernel.org/kvmarm/kvmarm/c/75c76ab5a641 [14/17] KVM: arm64: Program the timer traps with VHE layout in hVHE mode https://git.kernel.org/kvmarm/kvmarm/c/aca18585db4f [15/17] KVM: arm64: Force HCR_E2H in guest context when ARM64_KVM_HVHE is set https://git.kernel.org/kvmarm/kvmarm/c/38cba55008e5 [16/17] arm64: Allow arm64_sw.hvhe on command line https://git.kernel.org/kvmarm/kvmarm/c/ad744e8cb346 -- Best, Oliver