Re: [PATCH v2 23/23] kvm: x86: Disable RDMSR interception of IA32_XFD_ERR
From: Paolo Bonzini
Date: Tue Dec 21 2021 - 03:48:44 EST
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