天天看点

linux内核中取消ecc配置,如何在Linux中收到ECC错误的通知?

Linux kernel supports一些芯片组的错误检测和纠正(

EDAC)功能.在支持的

ECC系统上,可以通过sysfs访问内存控制器的状态:

/sys/devices/system/edac/mc

该位置下的目录树应与您的硬件相对应,例如:

/sys/devices/system/edac/mc/mc0/csrow2/power

/sys/devices/system/edac/mc/mc0/csrow0/power

/sys/devices/system/edac/mc/mc0/dimm2/power

/sys/devices/system/edac/mc/mc0/dimm0/power

/sys/devices/system/edac/mc/mc1/power

...

根据您的硬件,您可能必须明确加载正确的edac驱动程序,参见:

find /lib/modules/$(uname -r) -name '*edac*'

edac-utils package提供了一个命令行前端和一个用于访问该数据的库,例如:

edac-util -rfull

mc0:csrow0:mc#0memory#0:CE:0

mc0:csrow2:mc#0memory#2:CE:0

mc0:noinfo:all:UE:0

mc0:noinfo:all:CE:0

mc1:noinfo:all:UE:0

mc1:noinfo:all:CE:0

您可以设置某种定期调用eac-util的cron-job,并将结果提供给监控系统,然后您可以在其中配置一些通知.

除此之外,运行mcelog通常是一个好主意.取决于系统,但不可纠正/可纠正的ECC错误也可能被报告为机器检查异常(MCE).我的意思是,即使由于温度较高而短暂的cpu节流也被报告为MCE.