Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

KVM: x86: expose MSR_PLATFORM_INFO as a feature MSR

For userspace that wants to disable KVM_X86_QUIRK_STUFF_FEATURE_MSRS, it
is useful to know what bits can be set to 1 in MSR_PLATFORM_INFO (apart
from the TSC ratio). The right way to do that is via /dev/kvm's
feature MSR mechanism.

In fact, MSR_PLATFORM_INFO is already a feature MSR for the purpose of
blocking updates after the vCPU is run, but KVM_GET_MSRS did not return
a valid value for it.

Just like in a VM that leaves KVM_X86_QUIRK_STUFF_FEATURE_MSRS enabled,
the TSC ratio field is left to 0. Only bit 31 is set.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

+3
+3
arch/x86/kvm/x86.c
··· 1675 1675 case MSR_IA32_PERF_CAPABILITIES: 1676 1676 *data = kvm_caps.supported_perf_cap; 1677 1677 break; 1678 + case MSR_PLATFORM_INFO: 1679 + *data = MSR_PLATFORM_INFO_CPUID_FAULT; 1680 + break; 1678 1681 case MSR_IA32_UCODE_REV: 1679 1682 rdmsrl_safe(index, data); 1680 1683 break;