enterprise
- FreeBSD and MCA
FreeBSDはMCA
(Machine Check Architecture) に対応しています (/usr/ src/ sys/ x86/ x86/ mca. cあたりを参照)。MCAに対応する以前はMCAから障害報告があっても何も対処していませんでしたが、 MCAに対応した後は障害情報がログに記録されるようになりました。 MCAに対応しているかどうかはsysctl値を見るなどしてチェックできます。
% sysctl hw.
mca hw. mca. erratum383: 0 hw. mca. amd10h_ L1TP: 1 hw. mca. enabled: 1 hw. mca. count: 0 hw. mca. interval: 3600 hw. mca. force_ scan: 0 hw. mca. cmc_ throttle: 60 % MCAによる障害報告は、
たとえば次のようなものがあります。ここでは障害報告がきた後、 パニックが発生しています。 MCA: Bank 1, Status 0xb200000000000115 MCA: Global Cap 0x0000000000000005, Status 0x0000000000000004 MCA: Vendor "GenuineIntel", ID 0x6d8, APIC ID 0 MCA: CPU 0 UNCOR PCC DCACHE L1 RD error Fatal trap 28: machine check trap while in kernel mode cpuid = 0; apic id = 00 instruction pointer = 0x20:0xc08b2c6b stack pointer = 0x28:0xc4b6bcbc frame pointer = 0x28:0xc4b6bcbc code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 12 (swi4: clock) trap number = 28 panic: machine check trapMCA: Bank 1, Status 0xf200000000000115
この例では、
とくに 「CPU 0 UNCOR」 に注目してください。UNCORはUNCORRECTABLE (修復不可能) であることを意味しています。修復可能である場合には自動的に修復が実施されますので良いのですが、 この状態(UNCOR)が報告されるようですと、 ハードウェア的にプロセッサが故障している可能性があります。ログにMAC UNCORが報告されるようになった場合、 プロセッサの交換を検討したほうが良い可能性がありますので注意してください。