首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EDAC如何获得错误通知?从BIOS还是内存控制器?

EDAC如何获得错误通知?从BIOS还是内存控制器?
EN

Unix & Linux用户
提问于 2020-09-01 06:07:49
回答 1查看 1K关注 0票数 0

我们使用EDAC来监测DIMM上的错误。

我想知道EDAC如何获得关于这些错误的通知?

  1. 内存控制器有中断通知BIOS,然后BIOS通知OS?
  2. 存储器控制器有中断直接通知操作系统。

我看到一个关键字:固件第一模式。

此设置是否设置在BIOS或内存控制器上?

dmesg日志:

代码语言:javascript
复制
dmesg | grep -i edac
[    0.346813] EDAC MC: Ver: 3.0.0
[   97.989717] EDAC sbridge: Seeking for: PCI ID 8086:2fa0
[   97.989727] EDAC sbridge: Seeking for: PCI ID 8086:2fa0
[   97.989738] EDAC sbridge: Seeking for: PCI ID 8086:2f60
[   97.989742] EDAC sbridge: Seeking for: PCI ID 8086:2fa8
[   97.989745] EDAC sbridge: Seeking for: PCI ID 8086:2fa8
[   97.989748] EDAC sbridge: Seeking for: PCI ID 8086:2f71
[   97.989751] EDAC sbridge: Seeking for: PCI ID 8086:2f71
[   97.989754] EDAC sbridge: Seeking for: PCI ID 8086:2faa
[   97.989757] EDAC sbridge: Seeking for: PCI ID 8086:2faa
...
...
[   97.989927] EDAC MC0: Giving out device to module sb_edac controller Haswell SrcID#0_Ha#0: DEV 0000:ff:12.0 (INTERRUPT)
[   97.989927] EDAC sbridge:  Ver: 1.1.2
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-09-01 07:47:33

这取决于两者都是可能的。

内存控制器报告错误一次;读取错误将清除错误。因此,如果系统固件和操作系统都试图处理EDAC报告,就会发生竞争,错误可能会被漏掉。因此,正确配置的系统将直接处理EDAC报告,使系统固件远离循环,或者使用GHES (适当的ACPI驱动程序)接收来自系统固件的错误(这是“固件优先”模式)。

操作系统使用“直接”EDAC驱动程序处理来自内存控制器的机器检查异常(MCE),并执行任何适当的操作。使用GHES驱动程序,系统固件处理MCE,并通知操作系统。

根据场景的不同,您将看到不同的日志。引导日志应该告诉您配置是什么,如果发生内存错误,您将在固件第一模式的日志中看到“软件事件”,否则会看到“硬件事件”。

这些设置可以是固件设置和操作系统配置的组合。在大多数“低端”ECC系统上,没有相应的固件配置(只访问日志),这完全取决于操作系统。高端服务器将在固件配置中设置,并在手册中描述如何配置它们(以及操作系统)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/607302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档