On 10/20/2022 10:27 PM, Sean Christopherson wrote:
On Thu, Oct 20, 2022, Xiaoyao Li wrote:
vcpu->arch.mcg_cap represents the value of MSR_IA32_MCG_CAP. It's
set via ioctl(KVM_X86_SETUP_MCE) from userspace when exposing and
configuring MCE to guest.
It's wrong to leave the default value as KVM_MAX_MCE_BANKS.
Why? I agree it's an odd default, but the whole MCE API is odd. Functionally,
I don't see anything that's broken by allowing the guest to access the MCx_CTL MSRs
by default.
Yes. Allowing the access doesn't cause any issue for a VM.
However, for the perspective of virtualization. It virtualizes a magic
hardware that even CPUID.MCA/MCE is not advertised and MCE is not set up
by userspace, guest is told there are 32 banks and all the banks can be
accessed.
The patch doesn't fix any issue but try to make the code more reasonable.