arm/arm64: KVM: Add PSCI version selection API
Although we've implemented PSCI 0.1, 0.2 and 1.0, we expose either 0.1 or 1.0 to a guest, defaulting to the latest version of the PSCI implementation that is compatible with the requested version. This is no different from doing a firmware upgrade on KVM. But in order to give a chance to hypothetical badly implemented guests that would have a fit by discovering something other than PSCI 0.2, let's provide a new API that allows userspace to pick one particular version of the API. This is implemented as a new class of "firmware" registers, where we expose the PSCI version. This allows the PSCI version to be save/restored as part of a guest migration, and also set to any supported version if the guest requires it. Cc: stable@vger.kernel.org #4.16 Reviewed-by:Christoffer Dall <cdall@kernel.org> Signed-off-by:
Marc Zyngier <marc.zyngier@arm.com>
Showing
- Documentation/virtual/kvm/api.txt 8 additions, 1 deletionDocumentation/virtual/kvm/api.txt
- Documentation/virtual/kvm/arm/psci.txt 30 additions, 0 deletionsDocumentation/virtual/kvm/arm/psci.txt
- arch/arm/include/asm/kvm_host.h 3 additions, 0 deletionsarch/arm/include/asm/kvm_host.h
- arch/arm/include/uapi/asm/kvm.h 6 additions, 0 deletionsarch/arm/include/uapi/asm/kvm.h
- arch/arm/kvm/guest.c 13 additions, 0 deletionsarch/arm/kvm/guest.c
- arch/arm64/include/asm/kvm_host.h 3 additions, 0 deletionsarch/arm64/include/asm/kvm_host.h
- arch/arm64/include/uapi/asm/kvm.h 6 additions, 0 deletionsarch/arm64/include/uapi/asm/kvm.h
- arch/arm64/kvm/guest.c 13 additions, 1 deletionarch/arm64/kvm/guest.c
- include/kvm/arm_psci.h 14 additions, 2 deletionsinclude/kvm/arm_psci.h
- virt/kvm/arm/psci.c 60 additions, 0 deletionsvirt/kvm/arm/psci.c
Loading
Please register or sign in to comment