当前位置 博文首页 > 阿俊之家●●●https://ximenjianxue.blog.csdn.net:ESXi主机紫

    阿俊之家●●●https://ximenjianxue.blog.csdn.net:ESXi主机紫

    作者:[db:作者] 时间:2021-09-08 13:34

    一、问题描述

    在这里插入图片描述
    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、本次故障原因

    结合以往经验及告警提示,本次故障是内存通信错误引起的,表现为:
    在这里插入图片描述
    具体原因还需待主机硬件人员进一步分析,一般是联系厂商更换内存。

    cs