EDAC を使用して DIMM のエラーを監視します。
EDACがこれらのエラーについてどのように通知するのか疑問に思います。
- メモリコントローラにはBIOSに通知する割り込みがあり、BIOSはOSに通知します。
- メモリコントローラは、オペレーティングシステムに割り込みを直接通知します。
キーワードを見ました。ファームウェア優先モード。
この設定はBIOSまたはメモリコントローラに設定されていますか?
dmesg
丸太:
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
答え1
状況によって異なり、どちらも可能です。
メモリコントローラはエラーを一度報告するとエラーがクリアされます。したがって、システムファームウェアとオペレーティングシステムの両方がEDACレポートを処理しようとすると、競合状態が発生し、エラーが欠落する可能性があります。したがって、適切に構成されたシステムは、EDACレポートを直接処理したり、システムファームウェアをループから取り出したり、適切なACPIドライバ(GHES)を使用してシステムファームウェアからエラーを受け取ります(これは「ファームウェア優先」モードです)。
「直接」EDACドライバを使用すると、オペレーティングシステムはメモリコントローラのマシンチェック例外(MCE)を処理し、適切な処置をとることができます。 GHESドライバにより、システムファームウェアはMCEを処理し、オペレーティングシステムに通知することができます。
シナリオによって異なるログが表示されます。起動ログは設定が何であるかを知らせる必要があります。メモリエラーが発生した場合は、ファームウェア優先モードのログに「ソフトウェアイベント」と表示され、それ以外の場合は「ハードウェアイベント」と表示されます。
これらの設定は、ファームウェア設定とオペレーティングシステム構成の組み合わせです。ほとんどの「ローエンド」ECC対応システムには、対応するファームウェア構成(アクセスログのみ)がなく、すべてOSによって異なります。高度なサーバーにはファームウェア構成に設定があり、そのマニュアルに記載されている構成方法(オペレーティングシステムと共に)があります。