Re: [PATCH 0/3] KVM: x86: guest interface for SEV live migration

From: Paolo Bonzini
Date: Tue Apr 20 2021 - 16:58:35 EST


On 20/04/21 22:16, Sean Christopherson wrote:
On Tue, Apr 20, 2021, Sean Christopherson wrote:
On Tue, Apr 20, 2021, Paolo Bonzini wrote:
In this particular case, if userspace sets the bit in CPUID2 but doesn't
handle KVM_EXIT_HYPERCALL, the guest will probably trigger some kind of
assertion failure as soon as it invokes the HC_PAGE_ENC_STATUS hypercall.

Oh! Almost forgot my hail mary idea. Instead of a new capability, can we
reject the hypercall if userspace has _not_ set KVM_CAP_ENFORCE_PV_FEATURE_CPUID?

if (vcpu->arch.pv_cpuid.enforce &&
!guest_pv_has(vcpu, KVM_FEATURE_HC_PAGE_ENC_STATUS)
break;

Couldn't userspace enable that capability and _still_ copy the supported CPUID blindly to the guest CPUID, without supporting the hypercall?

(BTW, it's better to return a bitmask of hypercalls that will exit to userspace from KVM_CHECK_EXTENSION. Userspace can still reject with -ENOSYS those that it doesn't know, but it's important that it knows in general how to handle KVM_EXIT_HYPERCALL).

Paolo