Re: [RFC PATCH 4/4] KVM: vmx: add support for emulating UMIP

From: Wanpeng Li
Date: Sat Jul 30 2016 - 22:32:56 EST


2016-07-14 16:09 GMT+08:00 Paolo Bonzini <pbonzini@xxxxxxxxxx>:
[...]
>
> This is not necessary because this is how KVM computes
> CPUID[EAX=7,EBX=0].ECX:
>
> unsigned f_umip = kvm_x86_ops->umip_emulated() ? F(UMIP) : 0;
> ...
> const u32 kvm_cpuid_7_0_ecx_x86_features = F(PKU) | F(UMIP);
> ...
> // Mask userspace-provided value against supported features
> entry->ecx &= kvm_cpuid_7_0_ecx_x86_features;
> // Mask userspace-provided value against host features
> cpuid_mask(&entry->ecx, CPUID_7_ECX);
> // Finally add emulated features
> entry->ecx |= f_umip;

I think you mean:

- entry->ecx -> userspace-provided value
- kvm_cpuid_7_0_ecx_x86_features -> supported features
- CPUID_7_ECX -> host features

However, entry->ecx is returned by cpuid instruction
(do_cpuid_1_ent()), so why it is a userspace-provided value?

Regards,
Wanpeng Li