本文主要是介绍ESXi主机紫屏故障报:Fatal MCE on pcpub,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、问题描述
MACHINE-CHECK ARCHITECTURE(MCA)
MCE(Machine Check Exception)是用来报告主机硬件相关问题的一种日志机制,日志文件是/var/log/mcelog;只有发生硬件报错了,才会有 /var/log/mcelog。
上图中有个err=18,即处理器中断18 - Machine-Check Exception (#MC)错误;
二、分析
2.1、MCE现象
Intel在Pentium 4、Xenon和P6系列处理器中实现了机器检查(Machinecheck)架构,提供能够检测和报告硬件(机器)的错误机制,如系统总线错误、ECC错误、奇偶校验错误、缓存错误、TLB错误等。它包括一直MSR(Model-Specific Registers)寄存器,用来设置机器检查和额外的bank MSR记录错误。
当机器检查到不可纠正的machine-check错误时,就触发一个machine-check异常。machine-check架构不允许在出现MCE后处理器重启,但MCE处理程序可以从MSR寄存器收集相关信息。
MCE错误判断原则:
凡是内核死机打印“Machine Check Exception“或内核栈信息中打印有do_machine_check()函数,均为MCE问题。
处理器在探测到 uncorrected machine-check error(硬件不可自修复)的时候,就会发送 machine-check exception (#MC)。这种exception是abort类型的。而MCA的实现通常来讲,是不允许在产生#MC后进行可靠的重启。
machine-check-exception的处理函数,可以通过读取相关的MSR来得到相关的错误信息。
从Intel 45nm(最新的已经规划10nm门电路的芯片)的芯片开始,处理器在发现 corrected machine-check error(硬件可自修复的错误)的时候,也会发送一个中断给系统软件来响应这类MC错误,这种中断被称作CMCI( corrected machine-check error interrupt)
在支持MCA和CMCI的Intel 64处理上,还支持一些额外的增强特性,可以让系统软件来恢复一些特性的 uncorrected recoverable machine check 错误(UCR)。
2.2、MCE错误来源
●PCI-E设备信号质量/时钟
●CPU芯片损坏 /设计 BUG
●CPU Cache损坏或其它故障
●CPU可能的缺陷:如CPU生产制造过程中带来的缺陷
●内存坏/接触不良
●BIOS配置不当
●OS/MCE中断程序Bug
●环境因素,如温度/湿度
2.3、Machine check相关的MCR:寄存器
Machine check使用了一组相关的MSR。 这些MSR有两部分组成,第一部分是全局控制和状态寄存器(global), 另外一部分是一些记录错误信息的banks。MSR的整体布局如下图所示:
详情参考:https://blog.csdn.net/chengm8/article/details/53003134
2.4、本次故障原因
结合以往经验及告警提示,本次故障是内存通信错误引起的,表现为:
具体原因还需待主机硬件人员进一步分析,一般是联系厂商更换内存。
这篇关于ESXi主机紫屏故障报:Fatal MCE on pcpub的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!