Re: [tip: ras/core] x86/mce: Enable additional error logging on certain Intel CPUs

From: Jim Mattson
Date: Mon Nov 09 2020 - 18:26:17 EST


On Mon, Nov 9, 2020 at 2:57 PM Luck, Tony <tony.luck@xxxxxxxxx> wrote:
>
> > I thought Linux had long ago gone the route of turning rdmsr/wrmsr
> > into rdmsr_safe/wrmsr_safe, so that the guest would ignore the #GPs on
> > writes and return zero to the caller for #GPs on reads.
>
> Linux just switched that around for the machine check banks ... if they #GP
> fault, then something is seriously wrong.
>
> Maybe that isn't a general change of direction though. Perhaps I
> should either use rdmsrl_safe() in this code. Or (better?) add
>
> if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
> return;
>
> to the start of intel_imc_init().

I wouldn't expect all hypervisors to necessarily set CPUID.01H:ECX[bit
31]. Architecturally, on Intel CPUs, that bit is simply defined as
"not used." There is no documented contract between Intel and
hypervisor vendors regarding the use of that bit. (AMD, on the other
hand, *does* document that bit as "reserved for use by hypervisor to
indicate guest status.")