提交 f1f8288d 编写于 作者: M Michael Kelley 提交者: Wei Liu

x86/hyperv: Disable hardlockup detector by default in Hyper-V guests

In newer versions of Hyper-V, the x86/x64 PMU can be virtualized
into guest VMs by explicitly enabling it. Linux kernels are typically
built to automatically enable the hardlockup detector if the PMU is
found. To prevent the possibility of false positives due to the
vagaries of VM scheduling, disable the PMU-based hardlockup detector
by default in a VM on Hyper-V.  The hardlockup detector can still be
enabled by overriding the default with the nmi_watchdog=1 option on
the kernel boot line or via sysctl at runtime.

This change mimics the approach taken with KVM guests in
commit 692297d8 ("watchdog: introduce the hardlockup_detector_disable()
function").

Linux on ARM64 does not provide a PMU-based hardlockup detector, so
there's no corresponding disable in the Hyper-V init code on ARM64.
Signed-off-by: NMichael Kelley <mikelley@microsoft.com>
Link: https://lore.kernel.org/r/1652111063-6535-1-git-send-email-mikelley@microsoft.comSigned-off-by: NWei Liu <wei.liu@kernel.org>
上级 6733dd4a
...@@ -465,6 +465,8 @@ static void __init ms_hyperv_init_platform(void) ...@@ -465,6 +465,8 @@ static void __init ms_hyperv_init_platform(void)
*/ */
if (!(ms_hyperv.features & HV_ACCESS_TSC_INVARIANT)) if (!(ms_hyperv.features & HV_ACCESS_TSC_INVARIANT))
mark_tsc_unstable("running on Hyper-V"); mark_tsc_unstable("running on Hyper-V");
hardlockup_detector_disable();
} }
static bool __init ms_hyperv_x2apic_available(void) static bool __init ms_hyperv_x2apic_available(void)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册