调试内核的方法总结2-NMI watchdog原理分析

本文主要探讨了如何通过NMI Watchdog进行内核调试,以解决系统死机问题。上一节介绍了使用kdump进行故障追踪,接下来将深入分析spinlock自旋锁的工作机制。同时,内容还涉及双机热备Oracle数据库的配置实践,以及虚拟磁带库在数据保护中的应用。
摘要由CSDN通过智能技术生成
     上一次改zfs代码导致系统死机,sysrq尝试过,由于键盘已经不能用了,所以sysrq用不上了,然后又尝试了Kdump工具,结果仍然是失败了,系统依然死机,而且也没看到发生一次内核转储。所以打算采用以下的NMI watchdog的方法检测死机问题,强制内核转储。
      NMI(Not Maskable Interrupt)的意思是:不可屏蔽中断的意思。最开始用在内存校验错误的时候通知CPU,但是最近APIC 也能够定时的产生这种中断。所以操作系统会在一秒钟内发送一定次数的中断,如果NMI监控器没有捕捉到任何中断的时候,就认为这是一次错误,然后就会发生内核崩溃转储。
 为了使用NMI ,首先要内核支持。查看Processor type and features -> Local APIC support on uniprocessors CONFIG_X86_UP_APIC。在默认的Ubuntu系统中这个watchdog是不工作的。
      同时该watchdog不能够和其他的性能监控工具共同使用,因为watchdog需要使用第一个性能监控寄存器。所以perfctr和oprofile都不能够正常使用。
通过
 $ cat /proc/interrupts 可以查看中断的情况
 NMI  0  0 说明watchdog没有工作。
      开启NMI watchdog需要注意nmi_watchdog=panic,N(N=1,2) 当系统当中使用了IO-APIC 设备的时候,需要将N设置成1,如果没有IO-APIC的时候,那么将N设置成2.
如何判断是否安装了IO-APIC呢?
     在proc/interrupts文件中 如果看到很多IO-APIC相关的中断内容,说明使用了IO-
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值