OSDN Git Service

KVM: PPC: Book3S HV: Add a capability for enabling secure guests
authorPaul Mackerras <paulus@ozlabs.org>
Thu, 19 Mar 2020 04:29:55 +0000 (15:29 +1100)
committerPaul Mackerras <paulus@ozlabs.org>
Thu, 26 Mar 2020 00:09:04 +0000 (11:09 +1100)
commit9a5788c615f52f6d7bf0b61986a632d4ec86791d
tree6f21798f53aa6e38106980450fcdadc1a68148d5
parent377f02d487b5f74a2411fa01316ba4aff1819629
KVM: PPC: Book3S HV: Add a capability for enabling secure guests

At present, on Power systems with Protected Execution Facility
hardware and an ultravisor, a KVM guest can transition to being a
secure guest at will.  Userspace (QEMU) has no way of knowing
whether a host system is capable of running secure guests.  This
will present a problem in future when the ultravisor is capable of
migrating secure guests from one host to another, because
virtualization management software will have no way to ensure that
secure guests only run in domains where all of the hosts can
support secure guests.

This adds a VM capability which has two functions: (a) userspace
can query it to find out whether the host can support secure guests,
and (b) userspace can enable it for a guest, which allows that
guest to become a secure guest.  If userspace does not enable it,
KVM will return an error when the ultravisor does the hypercall
that indicates that the guest is starting to transition to a
secure guest.  The ultravisor will then abort the transition and
the guest will terminate.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Ram Pai <linuxram@us.ibm.com>
Documentation/virt/kvm/api.rst
arch/powerpc/include/asm/kvm_book3s_uvmem.h
arch/powerpc/include/asm/kvm_host.h
arch/powerpc/include/asm/kvm_ppc.h
arch/powerpc/kvm/book3s_hv.c
arch/powerpc/kvm/book3s_hv_uvmem.c
arch/powerpc/kvm/powerpc.c
include/uapi/linux/kvm.h