NMI是什么
NMI是什么
NMI(non-maskable interrupt),就是不可屏蔽的中断。根据Intel的Software Developer手册Volume 3,NMI的来源有两个:
– NMI pin
– delivery mode NMI messages through system bus or local APIC serial bus
NMI通常用于通知操作系统发生了无法恢复的硬件错误,也可以用于系统调试与采样,大多数服务器还提供了人工触发NMI的接口,比如NMI按钮或者iLO命令等。
- 无法恢复的硬件错误通常包括:芯片错误、内存ECC校验错、总线数据损坏等等。
- 当系统挂起,失去响应的时候,可以人工触发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:
…
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/sda nmi_watchdog=1
…
然后你会看到:
# grep NMI /proc/interrupts
NMI: 0 0 0 0
Linux kernel笼统地把NMI分为三大类:内存校验错 mem_parity_error(),总线数据损坏
io_check_error(),其他的全部归入
unknown_nmi_error()。kernel对NMI是不能精确定位的,对故障诊断很不利,硬件驱动程序可以注册自己的NMI处理例程,kernel会在发生NMI之后通过notify_die()调用这些第三方注册的处理例程。
参考资料:
Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3
http://wiki.osdev.org/Non_Maskable_Interrupt
NMI是什么的更多相关文章
- kernel:NMI watchdog: BUG: soft lockup - CPU#6 stuck for 28s! CentOS7linux中内核被锁死
环境说明:虚拟机 CentOS7中解压一个8G的包时,内核报错 Message from syslogd@cosmo-01 at Apr 25 11:05:59 ... kernel:NMI watc ...
- 社区发现的3个评估指标:标准化互信息NMI,ARI指标,以及模块度(modularity)
转载请注明出处:http://www.cnblogs.com/bethansy/p/6890972.html 一.已知真实社区划分结果 1.NMI指数,互信息和标准化互信息 具体公式和matlab代码 ...
- 创龙OMAPL138的NMI中断
1. 不可屏蔽中断部分代码,注册中断函数,6748有几个NMI的引脚? void InterruptInit(void) { // 初始化 DSP 中断控制器 IntDSPINTCInit(); // ...
- STM32 Cortex-M3 NMI异常
最近在调试STM32 Cortex-M3 HardFault异常,以外发现程序居然进入了NMI异常.对于这种异常,从来没有出现过,如下图所示. 此时的R0等寄存器的值如下图所示, 堆栈指针是0x200 ...
- NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s!
今天测试环境一虚拟机运行中突然报错,,, 没见过的内核报错,于是google一番. 系统日志: Nov :: dev- kernel: NMI watchdog: BUG: soft lockup - ...
- NMI计算
NMI计算 NMI(Normalized Mutual Information)标准化互信息,常用在聚类中,度量两个聚类结果的相近程度.是社区发现(community detection)的重要衡量指 ...
- VMX - block by NMI和 NMI unblockinig due to IRET 之间的关系
相关SDM章节: 27.2.3- Information About NMI Unblocking Due to IRET 最近收到同事发来的一个问题,即: VMCS 中的 Guest Interru ...
- CentOS7运行报错kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s
CentOS内核,对应的文件是/proc/sys/kernel/watchdog_thresh.CentOS内核和标准内核还有一个地方不一样,就是处理CPU占用时间过长的函数,CentOS下是watc ...
- 报错kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s
近期在服务器跑大量高负载程序,造成cpu soft lockup.如果确认不是软件的问题. 解决办法: #追加到配置文件中 echo 30 > /proc/sys/kernel/watchdog ...
随机推荐
- Go语言入门篇-gRPC基于golang & java简单实现
一.什么是RPC 1.简介: RPC:Remote Procedure Call,远程过程调用.简单来说就是两个进程之间的数据交互. 正常服务端的接口服务是提供给用户端(在Web开发中就是浏览器)或者 ...
- stat中的st_dev和st_rdev
目录 stat中的st_dev和st_rdev title: stat中的st_dev和st_rdev date: 2019/11/27 21:04:25 toc: true --- stat中的st ...
- Docker 安装 PHP
安装 PHP 镜像 查找Docker Hub上的php镜像 docker search php 这里我们拉取官方的镜像,标签为5.6-fpm docker pull php:5.6-fpm Nginx ...
- [转帖]电源ac和dc有什么区别_dc ac分别代表什么
电源ac和dc有什么区别_dc ac分别代表什么 发表于 2017-10-28 17:18:58 电源设计应用 +关注 http://m.elecfans.com/article/571712.htm ...
- Redis 学习笔记(篇五):对象(RedisObject)
Redis-对象 在以前的文章中,我们介绍了 Redis 用到的主要数据结构,比如简单动态字符串.双端链表.字典.压缩列表.整数集合. 然而 Redis 并没有直接使用这些数据结构来实现键值对的数据库 ...
- Linux系列(13)之程序与服务的概念
知道如何区分程序与进程吗? 知道如何产生进程吗? 知道进程之间的相关性吗? 知道进程调用的流程吗? 知道进程与服务的区别吗? 1.程序与进程的区别 bash就是一个程序,当我们登录之后系统就会给我们分 ...
- HDU 3333-Turing Tree-线段树+离散+离线
Description After inventing Turing Tree, 3xian always felt boring when solving problems about interv ...
- python time模块认识
time 模块 -- 时间获取和转换 time 模块提供各种时间相关的功能 在python中, 与时间处理有关的模块包括: time, datatime 以及 calendar 必要说明!: 虽然这个 ...
- linux mysql 数据库操作导入导出 数据表导出导入
linux mysql 数据库操作导入导出 数据表导出导入 1,数据库导入 mysql -uroot -p show databases; create database newdb; use 数据库 ...
- java对象序列化并存储到文件中
● 如何将一个Java对象序列化到文件里 使用输入输出流,,一个是ObjectOutputStream 对象,ObjectOutputStream 负责向指定的流中写入序列化的对象.当从文件中读取序列 ...