From a8b31239ae2f8d7bba10603ad8a4ba544a067b3c Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 14 Feb 2022 10:04:35 +0100 Subject: [PATCH] x86/Intel: skip PLATFORM_INFO reads on family 0xf MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This avoids unnecessary (and always somewhat scary) log messages for the recovered from #GP(0). Signed-off-by: Jan Beulich Acked-by: Roger Pau Monné --- xen/arch/x86/cpu/common.c | 7 +++++-- xen/arch/x86/cpu/intel.c | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c index c4f07f2d1d..3d61d95386 100644 --- a/xen/arch/x86/cpu/common.c +++ b/xen/arch/x86/cpu/common.c @@ -127,9 +127,12 @@ bool __init probe_cpuid_faulting(void) /* * Don't bother looking for CPUID faulting if we aren't virtualised on - * AMD or Hygon hardware - it won't be present. + * AMD or Hygon hardware - it won't be present. Likewise for Fam0F + * Intel hardware. */ - if ((boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) && + if (((boot_cpu_data.x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) || + ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && + boot_cpu_data.x86 == 0xf)) && !cpu_has_hypervisor) return false; diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c index 06b0e552cc..5ec67cf9e0 100644 --- a/xen/arch/x86/cpu/intel.c +++ b/xen/arch/x86/cpu/intel.c @@ -455,7 +455,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c) } } - if ( rdmsr_safe(MSR_INTEL_PLATFORM_INFO, msrval) ) + if ( c->x86 == 0xf || rdmsr_safe(MSR_INTEL_PLATFORM_INFO, msrval) ) return; max_ratio = msrval >> 8; -- 2.30.2