x86/hyperv: Disable hardlockup detector by default in Hyper-V guests
authorMichael Kelley <mikelley@microsoft.com>
Mon, 9 May 2022 15:44:23 +0000 (08:44 -0700)
committerWei Liu <wei.liu@kernel.org>
Wed, 11 May 2022 14:36:46 +0000 (14:36 +0000)
commitf1f8288d19d03af9d03db219c23d07a6e8ecd51b
tree31a1508c3be0e2f3b401eccf413a948d43c7941d
parent6733dd4af7818559114e2a4771363dd6239297f6
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 692297d8f968 ("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: Michael Kelley <mikelley@microsoft.com>
Link: https://lore.kernel.org/r/1652111063-6535-1-git-send-email-mikelley@microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
arch/x86/kernel/cpu/mshyperv.c