On Mon, Nov 09, 2020 at 03:24:02PM -0800, Luck, Tony wrote: > Booting as a guest under KVM results in error messages about > unchecked MSR access: > > [ 6.814328][ T0] unchecked MSR access error: RDMSR from 0x17f at rIP: 0xffffffff84483f16 (mce_intel_feature_init+0x156/0x270) > > because KVM doesn't provide emulation for random model specific registers. > > Check for X86_FEATURE_HYPERVISOR and skip trying to enable the mode (a > guest shouldn't be concerned with corrected errors anyway). > > Reported-by: Qian Cai <cai@xxxxxxxxxx> > Fixes: 68299a42f842 ("x86/mce: Enable additional error logging on certain Intel CPUs") > Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx> > --- > arch/x86/kernel/cpu/mce/intel.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/x86/kernel/cpu/mce/intel.c b/arch/x86/kernel/cpu/mce/intel.c > index b47883e364b4..7f7d863400b7 100644 > --- a/arch/x86/kernel/cpu/mce/intel.c > +++ b/arch/x86/kernel/cpu/mce/intel.c > @@ -517,6 +517,9 @@ static void intel_imc_init(struct cpuinfo_x86 *c) > { > u64 error_control; > > + if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) > + return; > + Frankly, I'm tired of wagging the dog because the tail can't. If qemu/kvm can't emulate a CPU model fully then it should ignore those unknown MSR accesses by default, i.e., that "ignore_msrs" functionality should be on by default I'd say... We certainly can't be sprinkling this check everytime the kernel tries to do something as basic as read an MSR. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette