VM Deadlock Detection
The NMI Watchdog is a mechanism dedicated to detect hard lockups in Linux. The NMI Watchdog generates non-maskable interrupts (NMIs) to interrupt code execution even in the code segments where the interrupts are disabled in the Linux kernel, ensuring that the system can detect hard lockups. The Arm hardware does not support NMIs. Therefore, the pseudo-NMI technology based on interrupt priority is used. The performance monitoring interrupts (PMIs) are configured as pseudo-NMIs to implement the NMI watchdog function, which is also called PMU Watchdog.
The implementation of NMI monitoring in the VM environment prevents the VM from failing to exit after entering an infinite loop. Otherwise, the management cannot be restored if this situation happens.
The feature is validated on VMs hosted on Kunpeng 920-based servers, running openEuler 22.03 LTS SP2 or later with libvirt 6.2.0 or later and QEMU 6.2.0 or later.
Constraints
- The internal OS of the VM needs to support pseudo-NMI and kernel parameters needs to be configured correctly.
- The method of configuring the PMU Watchdog on the VM is the same as that on the host. You do not need to configure the XML file.
- The procedure for configuring the PMU Watchdog on the VM is the same as that on the host. You do not need to modify the VM configuration file (for example, the XML file).
- If the SDEI Watchdog is available, it has a higher priority than the PMU Watchdog. Therefore, you need to disable the SDEI Watchdog before enabling the PMU Watchdog. The VM environment does not support the SDEI Watchdog. Therefore, when configuring kernel parameters, ensure that the SDEI Watchdog has been disabled by configuring kernel parameters.