On Mon, Oct 05, 2020 at 05:29:47PM +0200, Vitaly Kuznetsov wrote: > Tianjia Zhang <tianjia.zhang@xxxxxxxxxxxxxxxxx> writes: > > > Original KVM_SET_CPUID has removed NX on non-NX hosts as it did > > before. but KVM_SET_CPUID2 does not. The two should be consistent. > > > > Signed-off-by: Tianjia Zhang <tianjia.zhang@xxxxxxxxxxxxxxxxx> > > --- > > arch/x86/kvm/cpuid.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c > > index 3fd6eec202d7..3e7ba2b11acb 100644 > > --- a/arch/x86/kvm/cpuid.c > > +++ b/arch/x86/kvm/cpuid.c > > @@ -257,6 +257,7 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu, > > goto out; > > } > > > > + cpuid_fix_nx_cap(vcpu); > > kvm_update_cpuid_runtime(vcpu); > > kvm_vcpu_after_set_cpuid(vcpu); > > out: > > I stumbled upon this too and came to the conclusion this is > intentional, e.g. see this: > > commit 0771671749b59a507b6da4efb931c44d9691e248 > Author: Dan Kenigsberg <danken@xxxxxxxxxxxx> > Date: Wed Nov 21 17:10:04 2007 +0200 > > KVM: Enhance guest cpuid management > > ... > > [avi: fix original KVM_SET_CPUID not removing nx on non-nx hosts as it did > before] > > but this is a very, very old story. Doesn't mean it's bogus though :-) _If_ we want to extend this behavior to KVM_SET_CPUID2, there should be a justified need.