Intel MCE UCR ERRORS(三) UCR的错误分类

通过 IA32_MCi_STATUS中的S和AR两位的不同编码,可以将UCR分为如下类别

  • Uncorrected no action required (UCNA) - 该类UCR不会通过MCE进行通知,而是按照 corrected machine check error的方式报告给系统软件。UCNA意味着系统都的某些数据损坏了,但是这些坏数据还没有被使用,并且处理器的状态是有效的,所以可能继续正常执行本处理器的代码。UCNA不需要系统软件做任何的动作,就可以继续执行。UCNA的 IA32_MCi_STATUS的设置为 UC = 1,PCC = 0, S = 0,AR = 0
  • Software recoverable action optional (SRAO) - 该类UCR错误会通过MCE的方式进行通知,系统可以选择不进行恢复动作也可以选择进行,不是强制的。并且不需要从发生MCE的地方继续重新执行。SRAO错误意味着系统中有错误数据,但是坏数据没有被使用,处理器还是处于有效状态。SRAO提供了更多的信息让系统软件进行恢复动作。SRAO IA32_MCi_STATUS的设置为UC = 1,PCC = 0, S = 1,EN = 1, AR = 0。恢复的动作通过MCA error code来进行指定。如果 IA32_MCi_STATUS的 MISCV和 ADDRV被设定了,那么就可以在 IA32_MCi_MISC和 IA32_MCi_ADDR中读取到更多的错误信息。系统软件需要检查 IA32_MCi_STATUS的 MCA error code域来找到该SRAO对应的操作。如果MISCV和ADDRV没有被设置的话,建议不要进行系统恢复动作,而是继续正常执行。
  • Software recoverable action required (SRAR) - 该类UCR要求系统软件在调度其他执行流到本处理器前必须执行一个恢复动作。SRAR意味着错误被发现了,并且是在执行流程中发现并报告的错误。一个SRAR IA32_MCi_STATUS的设置为UC = 1,PCC = 0, S = 1,EN = 1, AR = 1。恢复的动作通过MCA error code来进行指定。如果 IA32_MCi_STATUS的 MISCV和 ADDRV被设定了,那么就可以在 IA32_MCi_MISC和 IA32_MCi_ADDR中读取到更多的错误信息。系统软件需要检查 IA32_MCi_STATUS的 MCA error code域来找到该SRAR对应的操作并执行它。如果MISCV和ADDRV没有被设置的话,建议直接采用关机处理

UCR errors、 corrected errors 和 uncorrected errors分类如下
Intel MCE UCR ERRORS(三) UCR的错误分类_第1张图片



另外,关于覆写规则一般如下
  • UCR 覆盖 corrected errors
  • Uncorrected (PCC=1) errors 覆盖  UCR (PCC=0) errors.
  • UCR errors 不会覆盖前一个 UCR errors
  • UCR errors 不会覆盖前一个 UCR errors

IA32_MCi_STATUS. OVER 来标记是否有覆盖的情况发生。注意如果OVER的情况,且AR或PPC被设置了,那么就需要重启系统。

更多的覆写规则,有兴趣的读者就自己查看SDM吧


相关文章

Intel MCE UCR ERRORS(二) UCR的报告和记录

你可能感兴趣的:(硬件知识,MCE,RAS,虚拟化,cpu,处理器)