On Tue, Jun 15, 2021, Jim Mattson wrote: > On Tue, Jun 15, 2021 at 9:45 AM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > @@ -226,7 +224,7 @@ static void cpuid_fix_nx_cap(struct kvm_vcpu *vcpu) > > break; > > } > > } > > - if (entry && cpuid_entry_has(entry, X86_FEATURE_NX) && !is_efer_nx()) { > > + if (entry && cpuid_entry_has(entry, X86_FEATURE_NX)) { > > cpuid_entry_clear(entry, X86_FEATURE_NX); > > printk(KERN_INFO "kvm: guest NX capability removed\n"); > > } > > It would be nice if we chose one consistent approach to dealing with > invalid guest CPUID information and stuck with it. Silently modifying > the table provided by userspace seems wrong to me. I much prefer the > kvm_check_cpuid approach of telling userspace that the guest CPUID > information is invalid. (Of course, once we return -EINVAL for more > than one field, good luck figuring out which field is invalid!) Yeah. I suspect this one can be dropped if EFER.NX is required for everything except EPT, but I didn't fully grok the problem that this was fixing, and it's such an esoteric case that I both don't care and am terrified of breaking some bizarre case.