概述
1、MCA Recovery – Execution Path
软件层辅助从不可纠正的数据错误恢复;
1)处理器识别到硬件不可纠正错误,打上数据腐烂标签,事件交由固件或OS处理。
2)如果固件/OS有冗余数据备份,可以被纠正;
3)如果如果错误发生在用户空间,OS可以用SIGBUS事件通知APP,允许进一步恢复或者中断APP,保持OS运行
4)如果错误发生在内核空间,OS触发kernal panic
2、MCA Recovery – Non-execution Path
软件层辅助从不可纠正的数据错误恢复;
1)处理器识别到硬件不可纠正错误,比如巡检错误事件、LLC显式回写事务,打上数据腐烂标签,事件交由固件或OS处理。
2)OS离线受影响的PAGE并禁止应用进一步访问;允许系统恢复继续运行;
3)如果错误发生在内核空间,OS可能不能离线PAGE,将记录错误并继续运行
3、MCA 2.0 Recovery (as per EMCA Gen2 architecture)
增强型错误上报,固件优先模型,支持如下属性:
Enhanced error reporting to support Firmware First Model (FFM) with following attributes:
1. Allows the SMM code to intercept the MCE/CMCI.
2. Allows the SMM code to write the MCA Status/Add/Misc registers.
3. Allows the SMM code to generate MCEs.
4. Allows the DSM based pointer for enhanced error logs.
5. Additional IA32_MCG_CAP bit for eMCA support
底层逻辑
MSR 0x179 - IA32_MCG_CAP[24] = 1--MSR 0x178 - MSR_MCG_CONTAIN打开--MCi_Status指示进一步区分UE为UCNA/SRAR/SRAO/UC Fatal/UC Cat