gpt4 book ai didi

linux - 关于 Linux NMI 看门狗

转载 作者:IT王子 更新时间:2023-10-29 00:14:55 36 4
gpt4 key购买 nike

现在我遇到一个关于 Linux NMI Watchdog 的问题。我想使用 Linux NMI 看门狗来检测和恢复操作系统挂起。因此,我将“nmi_watchdog=1”添加到 grub.cfg 中。然后检查 /proc/interrupt,NMI 每秒触发一次。但是在我加载一个带有死锁(双获取自旋锁)的模块后,系统完全挂起,什么也没有发生(永远不要 panic !)。看起来 NMI 看门狗没有工作!

然后我阅读了 Documentation/nmi_watchdog.txt,它说:

Be aware that when using local APIC, the frequency of NMI interruptsit generates, depends on the system load. The local APIC NMI watchdog,lacking a better source, uses the "cycles unhalted" event.

什么是“cycles unhalted”事件?

它补充说:

but if your system locks up on anything but the "hlt" processorinstruction, the watchdog will trigger very soon as the "cyclesunhalted" event will happen every clock tick...If it locks up on"hlt", then you are out of luck -- the event will not happen at alland the watchdog won't trigger.

如果处理器执行“hlt”指令,看门狗似乎不会触发,然后我在“Intel 64 and IA-32 Architectures Software Developer's Manual, Volumn 2A”中搜索“hlt”,它描述如下:

Stops instruction execution and places the processor in a HALT state.An enabled interrupt (including NMI and SMI), a debug exception, theBINIT# signal, the INIT# signal, or the RESET# signal will resumeexecution.

然后我迷路了...

我的问题是:

  • Linux NMI 看门狗如何工作?
  • 触发了 NMI?

我的操作系统是 Ubuntu 10.04 LTS、Linux-2.6.32.21、CPU Pentium 4 双核 3.20 GHz。

我没有阅读有关 NMI watchdog 的整个源代码(没时间),如果我不能理解 NMI watchdog 是如何工作的,我想使用性能监控计数器中断inter - 处理器中断(由 APIC 提供)以发送 NMI 而不是 NMI 看门狗。

最佳答案

答案取决于您的硬件。

不可屏蔽中断 (NMI) 可以通过两种方式触发:1) 当内核达到无法被其他方法中断的暂停状态时,以及 2) 由硬件触发——使用 NMI 按钮。

例如,在某些戴尔服务器的正面,您会看到一个小圆圈,里面有一条锯齿形线。这是 NMI 符号。附近有一个洞。插入引脚以触发中断。如果您的内核是为支持它而构建的,这会将内核崩溃跟踪转储到控制台,然后重新启动系统。

这可能发生得非常快。因此,如果您没有连接控制台来将输出保存到文件,它可能看起来只是重新启动。

关于linux - 关于 Linux NMI 看门狗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9865952/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com