您的位置 : 资讯 > 软件资讯 > RAS(三)Intel MCA-CMCI

RAS(三)Intel MCA-CMCI

来源:菜鸟下载 | 更新时间:2025-04-25

ras(三)intel mca-cmci修正的机器检查错误中断(CMCI)是MCA的一个增强特性,它提供了一种基

ras(三)intel mca-cmci

修正的机器检查错误中断(CMCI)是MCA的一个增强特性,它提供了一种基于阈值的错误报告方式。通过这种模式,软件可以配置硬件校正MC错误的阈值,当硬件发生的CE(校正错误)次数达到设定阈值时,会产生一个中断通知软件处理。

需要注意的是,CMCI是随MCA引入的特性,最初只能通过软件轮询方式获取CE信息。CMCI中断通知方式的优势在于,每个CE都将通过IRQ处理,不会丢失任何CE;而轮询方式则可能因轮询频率低、存储空间有限等原因导致CE丢失。然而,CMCI并非总是最佳选择,其缺点在于大量的CE可能引发中断风暴,影响机器性能。在云服务器场景中,CE风暴较为常见,那么Intel服务器是如何解决这一问题的呢?下文将详细说明。

CMCI机制

CMCI默认是关闭的,软件需要通过配置IA32_MCG_CAP[10] = 1来启用。

软件通过IA32_MCi_CTL2 MSR来控制对应Bank的CMCI功能的启用或关闭。

通过IA32_MCi_CTL2 Bit 14:0设置阈值,如果设置非0,则使用配置的阈值;如果CMCI不支持,则全0;

CMCI机制如下图所示:

ras(三)intel mca-cmci硬件通过比较IA32_MCi_CTL2 Bit 14:0和IA32_MCi_STATUS Bit 52:38,如果数值相等,则溢出事件发送到APIC的CMCI LVT条目。如果MC错误涉及多个处理器,那么CMCI中断会同时发送到这些处理器,例如两个CPU共享的缓存发生CE,这两个CPU都会收到CMCI。

CMCI初始化

以Linux v6.3分支为例,内核启用CMCI的代码如下:

arch/x86/kernel/cpu/mce/intel.cvoid intel_init_cmci(void){    int banks;    if (!cmci_supported(&banks))        return;    mce_threshold_vector = intel_threshold_interrupt;    cmci_discover(banks);    /*      * For CPU #0 this runs with still disabled APIC, but that's      * ok because only the vector is set up. We still do another      * check for the banks later for CPU #0 just to make sure      * to not miss any events.      */    apic_write(APIC_LVTCMCI, THRESHOLD_APIC_VECTOR|APIC_DM_FIXED);    cmci_recheck();}
登录后复制

菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。

展开
red
red
类型:休闲益智 运营状态:公测 语言:简体中文
前往下载

相关文章

更多>>

热门游戏

更多>>

手机扫描此二维码,

在手机上查看此页面

关于本站 下载帮助 版权声明 网站地图

版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理

Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2022003375号-1

本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源