From f14b7c68451c4b57d7b0f8c62549e97ea2d32674 Mon Sep 17 00:00:00 2001 From: JingyiWang Date: Fri, 11 Sep 2020 10:07:45 +0800 Subject: [PATCH 1/3] =?UTF-8?q?add=20content/zh/docs/Virtualization/?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E8=99=9A=E6=8B=9F=E6=9C=BA=E5=8F=AF=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=E6=80=A7.md.=20=E5=A2=9E=E5=8A=A0NMI=20Watchdog?= =?UTF-8?q?=E8=B5=84=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...57\347\273\264\346\212\244\346\200\247.md" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\346\234\272\345\217\257\347\273\264\346\212\244\346\200\247.md" diff --git "a/content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\346\234\272\345\217\257\347\273\264\346\212\244\346\200\247.md" "b/content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\346\234\272\345\217\257\347\273\264\346\212\244\346\200\247.md" new file mode 100644 index 000000000..c6b694bcd --- /dev/null +++ "b/content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\346\234\272\345\217\257\347\273\264\346\212\244\346\200\247.md" @@ -0,0 +1,27 @@ +# 管理虚拟机可维护性 + +## 虚拟机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文件进行其他配置 +- host上支持SDEI Watchdog和PMU Watchdog两种NMI Watchdog,且SDEI Watchdog优先级较高,因此要禁用SDEI Watchdog才会使能 + PMU Watchdog;虚拟机不支持SDEI Watchdog,因此要注意通过配置内核参数将其禁用 + +### 操作步骤 + +- 在虚拟机的引导配置文件grub.cfg中添加如下参数: + nmi_watchdog=1 pmu_nmi_enable hardlockup_cpu_freq=auto irqchip.gicv3_pseudo_nmi=1 disable_sdei_nmi_watchdog +- 检查虚拟机内部PMU Watchdog是否加载成功 + 如果加载成功,内核dmesg日志打印类似如下内容 + + ``` + [2.1173222] NMI watchdog: CPU0 freq probed as 2399999942 HZ. + ``` -- Gitee From f83684ab58e05ddc606f8fa47e827f0e392e851e Mon Sep 17 00:00:00 2001 From: JingyiWang Date: Fri, 11 Sep 2020 10:10:53 +0800 Subject: [PATCH 2/3] =?UTF-8?q?update=20content/zh/menu/index.md.=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/zh/menu/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/zh/menu/index.md b/content/zh/menu/index.md index 1d6d99d87..4c7bc4d1d 100644 --- a/content/zh/menu/index.md +++ b/content/zh/menu/index.md @@ -58,6 +58,7 @@ headless: true - [热迁移虚拟机]({{< relref "./docs/Virtualization/热迁移虚拟机.md" >}}) - [管理系统资源]({{< relref "./docs/Virtualization/管理系统资源.md" >}}) - [管理设备]({{< relref "./docs/Virtualization/管理设备.md" >}}) + - [管理虚拟机可维护性]({{< relref "./docs/Virtualization/管理虚拟机可维护性.md" >}}) - [最佳实践]({{< relref "./docs/Virtualization/最佳实践.md" >}}) - [附录]({{< relref "./docs/Virtualization/附录.md" >}}) -- Gitee From 96d0d3cbce9b8d2d5701f1d08437b4b5b9bbfc1b Mon Sep 17 00:00:00 2001 From: JingyiWang Date: Tue, 22 Sep 2020 11:41:59 +0800 Subject: [PATCH 3/3] =?UTF-8?q?update=20content/zh/docs/Virtualization/?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E8=99=9A=E6=8B=9F=E6=9C=BA=E5=8F=AF=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=E6=80=A7.md.=201.=E4=BF=AE=E6=94=B9=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=202.=E4=BF=AE=E6=94=B9=E5=85=B3=E4=BA=8ESDEI=20Watchdog?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\217\257\347\273\264\346\212\244\346\200\247.md" | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git "a/content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\346\234\272\345\217\257\347\273\264\346\212\244\346\200\247.md" "b/content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\346\234\272\345\217\257\347\273\264\346\212\244\346\200\247.md" index c6b694bcd..c16dc5367 100644 --- "a/content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\346\234\272\345\217\257\347\273\264\346\212\244\346\200\247.md" +++ "b/content/zh/docs/Virtualization/\347\256\241\347\220\206\350\231\232\346\213\237\346\234\272\345\217\257\347\273\264\346\212\244\346\200\247.md" @@ -4,23 +4,18 @@ ### 概述 -NMI Watchdog是一种用来检测Linux出现hardlockup(硬死锁)的机制。通过产生NMI(不可屏蔽中断),从而在Linux内核关闭中断的代码区间 -也能打断代码的执行,进一步检测内核是否出现硬死锁。当前ARM架构不支持原生NMI中断,通过使能基于中断优先级的Pseudo-NMI,将PMI -(Performance Monitoring Interrupt)中断配置为NMI中断,实现NMI Watchdog(即PMU 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文件进行其他配置 -- host上支持SDEI Watchdog和PMU Watchdog两种NMI Watchdog,且SDEI Watchdog优先级较高,因此要禁用SDEI Watchdog才会使能 - PMU Watchdog;虚拟机不支持SDEI Watchdog,因此要注意通过配置内核参数将其禁用 +- 同样作为NMI Watchdog,SDEI Watchdog的优先级高于PMU Watchdog,因此要禁用SDEI Watchdog才会使能PMU Watchdog;虚拟机不支持SDEI Watchdog,因此要注意通过配置内核参数将其禁用 ### 操作步骤 -- 在虚拟机的引导配置文件grub.cfg中添加如下参数: - nmi_watchdog=1 pmu_nmi_enable hardlockup_cpu_freq=auto irqchip.gicv3_pseudo_nmi=1 disable_sdei_nmi_watchdog -- 检查虚拟机内部PMU Watchdog是否加载成功 - 如果加载成功,内核dmesg日志打印类似如下内容 +- 在虚拟机的引导配置文件grub.cfg中添加如下参数:nmi_watchdog=1 pmu_nmi_enable hardlockup_cpu_freq=auto irqchip.gicv3_pseudo_nmi=1 disable_sdei_nmi_watchdog +- 检查虚拟机内部PMU Watchdog是否加载成功,如果加载成功,内核dmesg日志打印类似如下内容 ``` [2.1173222] NMI watchdog: CPU0 freq probed as 2399999942 HZ. -- Gitee