管理虚拟机可维护性

虚拟机NMI Watchdog

概述

NMI Watchdog是一种用来检测Linux出现hardlockup(硬死锁)的机制。通过产生NMI不可屏蔽中断,从而在Linux内核关闭中断的代码区间也能打断代码的执行,进一步检测内核是否出现硬死锁。当前ARM架构不支持原生NMI中断,通过使能基于中断优先级的Pseudo-NMI,将PMI(Performance Monitoring Interrupt)中断配置为NMI中断,实现NMI Watchdog(即PMU Watchdog)。

注意事项

  • 虚拟机内部OS需要支持Pseudo-NMI并配置相应内核参数
  • 虚拟机上PMU Watchdog的配置方式与host上相同,无需对xml文件进行其他配置
  • 同样作为NMI Watchdog,SDEI Watchdog的优先级高于PMU Watchdog,因此要禁用SDEI Watchdog才会使能PMU Watchdog;虚拟机不支持SDEI Watchdog,因此要注意通过配置内核参数将其禁用

操作步骤

针对ARM架构虚拟机配置NMI Watchdog的操作步骤如下:

  1. 在虚拟机的引导配置文件grub.cfg中添加如下参数:nmi_watchdog=1 pmu_nmi_enable hardlockup_cpu_freq=auto irqchip.gicv3_pseudo_nmi=1 disable_sdei_nmi_watchdog
  2. 检查虚拟机内部PMU Watchdog是否加载成功,如果加载成功,内核dmesg日志打印类似如下内容

    1. [2.1173222] NMI watchdog: CPU0 freq probed as 2399999942 HZ.