天天看點

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.