概述
外部硬件的中断是通过两根信号线通知CPU的,这两根信号线就是INTR(INTeRrupt)和NMI(Non Maskable Interrupt)。
-
NMI中断,不可屏蔽中断,产生这个中断的时候,表示系统发生了致命的错误。
-
INTR可屏蔽中断。
那么要讨论这个应用得场景,就需要分不同的中断进行讨论。
1、NMI中断
1、应用场景:
-
watchdog
-
调试、跨 PE 同步和热补丁
-
操作系统依赖中断来支持性能分析
-
RAS事件处理
2、NMI在Linux的应用
当系统挂起,失去响应的时候,可以人工触发NMI,使系统重置,如果早已配置好了kdump,那么会保存crash dump以供分析。
有的服务器提供了NMI按钮,而刀片服务器通常不提供按钮,但可以用iLO命令触发。
Linux还提供一种称为”NMI watchdog“的机制,用于检测系统是否失去响应(也称为lockup),可以配置为在发生lockup时自动触发panic。
原理是周期性地生成NMI,由NMI handler检查hrtimer中断的发生次数,如果一定时间内这个数字停顿了,表示系统失去了响应,于是调用panic例程。
NMI watchdog的开关是通过内核参数 kernel.nmi_watchdog 或者在boot parameter中加入”nmi_watchdog=1″参数实现,比如:在RHEL上编辑 /boot/grub/menu.lst
Linux kernel笼统地把NMI分为三大类:
- 内存校验错 mem_parity_error(),
- 总线数据损坏 io_check_error(),
- 其他的全部归入 unknown_nmi_error()
2、INTR中断
这个就很常见了,外设、软件、异常都有
参考资料:
https://blog.csdn.net/lglglgl/article/details/114042566
https://blog.csdn.net/weixin_42135087/article/details/127175004
最后
以上就是甜蜜水池为你收集整理的中断系列第二篇:中断的使用场景?1、NMI中断2、INTR中断的全部内容,希望文章能够帮你解决中断系列第二篇:中断的使用场景?1、NMI中断2、INTR中断所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复