Re: [PATCH v4 18/21] kvm: x86: Add support for getting/setting expanded xstate buffer

From: Paolo Bonzini
Date: Tue Jan 04 2022 - 15:45:50 EST


On 1/4/22 20:46, Sean Christopherson wrote:
On Wed, Dec 29, 2021, Yang Zhong wrote:
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index bdf89c28d2ce..76e1941db223 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -4296,6 +4296,11 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
else
r = 0;
break;
+ case KVM_CAP_XSAVE2:
+ r = kvm->vcpus[0]->arch.guest_fpu.uabi_size;

a) This does not compile against kvm/queue.

arch/x86/kvm/x86.c: In function ‘kvm_vm_ioctl_check_extension’:
arch/x86/kvm/x86.c:4317:24: error: ‘struct kvm’ has no member named ‘vcpus’
4317 | r = kvm->vcpus[0]->arch.guest_fpu.uabi_size;

b) vcpu0 is not guaranteed to be non-NULL at this point.

Yang, you can post an incremental patch for this. You can use the highest bit of the guest-permitted xcr0 (i.e. the OR of KVM's supported XCR0 an the guest-permitted dynamic features) and pass it to cpuid(0xD).

Paolo