On 12/21/2021 4:48 PM, Paolo Bonzini wrote: > > On 12/21/21 07:29, Liu, Jing2 wrote: > >> > > Thanks for reviewing the patches. > > > > If disable unconditionally in vmx_create_vcpu, it means even guest has > > no cpuid, the msr read is passthrough to guest and it can read a > > value, which seems strange, though spec doesn't mention the read > behaviour w/o cpuid. > > > > How about disabling read interception at vmx_vcpu_after_set_cpuid? > > > > if (boot_cpu_has(X86_FEATURE_XFD) && guest_cpuid_has(vcpu, > X86_FEATURE_XFD)) > > vmx_set_intercept_for_msr(vcpu, MSR_IA32_XFD_ERR, MSR_TYPE_R, > > false); > > Even better: > > if (boot_cpu_has(X86_FEATURE_XFD)) > vmx_set_intercept_for_msr(vcpu, MSR_IA32_XFD_ERR, > MSR_TYPE_R, > !guest_cpuid_has(vcpu, > X86_FEATURE_XFD)); Thanks Paolo. BTW do we want to put this together into patch 13 or 14, I guess you were saying patch 14 😊 [PATCH v2 13/23] kvm: x86: Intercept #NM for saving IA32_XFD_ERR [PATCH v2 14/23] kvm: x86: Emulate IA32_XFD_ERR for guest Thanks, Jing > > Thanks, > > Paolo