Re: [PATCH] KVM: x86: Fix the initial value of mcg_cap

From: Xiaoyao Li
Date: Thu Oct 20 2022 - 11:09:53 EST


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.