ステップ1

ステップ1

Ubuntu 14.04 LTSを実行している不安定なコンピュータがあり、9時間memtest86を通過しました。

私はこれを得ます:

Hardware event. This is not a software error.
MCE 0
CPU 1 BANK 0 
TIME 1414735539 Fri Oct 31 17:05:39 2014
MCG status:
MCi status:
Corrected error
Error enabled
MCA: Internal parity error
STATUS 9000004000010005 MCGSTATUS 0
MCGCAP c09 APICID 2 SOCKETID 0 
CPUID Vendor Intel Family 6 Model 58`

これは機械が動作し続ける時です。機械が凍った時、まだ一つはなかった。

「MCE 0」とは何ですか?そして「MCA」とは? CPUエラーですか、それともRAMエラーですか?

8GB RAMを搭載したスティックがあります。

ハードウェア(RAM、CPU、マザーボード、電源)をどのような順序で交換する必要がありますか?以前は、機械は非常に安定していました。 CPU電圧を少し上げる必要がありますか?

mcelog FAQを読みました。 Googleの結果はまれで、ほとんどの場合、他の形式(たとえば、以前のバージョンのカーネル/ MCE)で同様のメッセージがあります。

答え1

mcelog は MCA ステータスレジスタの一部をデコードしますが、より多くのデコードが役に立ちます。

ステップ1

以下のリンクから組み合わされたIntel®64およびIA-32アーキテクチャソフトウェア開発者マニュアルをダウンロードしてください。http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html 3439ページで構成されており、膨大です。以下は、2014年9月のバージョンを示しています。

ステップ2

/var/log/mcelogからSTATUSワードを取得し、xxdを介して数回送信してビットフィールドを取得します。私にとってこれは次のとおりです。

$ echo "9000004000010005" | xxd -r -p | xxd -b
0000000: 10010000 00000000 00000000 01000000 00000000 00000001  ...@..
0000006: 00000000 00000101                                      ..

ステップ3

いくつかのテキスト操作を実行してからビットに番号を付けます。

66665555 55555544 44444444 33333333 33222222 22221111 111111 
32109876 54321098 76543210 98765432 10987654 32109876 54321098 76543210
-----------------------------------------------------------------------
10010000 00000000 00000000 01000000 00000000 00000001 00000000 00000101 

ステップ4

マニュアルセクション15.3.2.2からステータスMCiステータスレジスタビット定義を抽出します。

MCiステータスレジスタビット

私の場合、ビット3:0は「MCAエラーコード5」を意味し、mcelogはこれを「内部パリティエラー」と解釈しました(セクション15.9.1を参照)。より多くの情報が欲しい。 CPU、RAM、またはマザーボードがパリティエラーの原因である可能性がありますか?

ビット63の1は単に「このレジスタ値が有効である」を意味する。ビット60の1は、単に「エラー報告の有効化」を意味します。 [52:38] = 1の値は、エラーが修正されたことを示します。

ビット16の1は「モデル固有のエラーコード」フィールドにあるので有望に見えますが、セクション16によると、ビット[15]は0なので、私が得るのは「単純」(複合ではない)エラーなので私は終わりました。

要点:パリティエラーがキャッシュで発生するのか、システムメモリで発生するのかを知る方法はありません。 「内部」が何を意味するのか分からない。中には何が含まれていますか?そのため、同じ問題でメモリを交換し、CPUを別のコンピュータ(運の互換性のあるソケット)に交換したところ、両方のコンピュータで問題が停止しました。この高度なハードウェアでは、私が期待していた正確な診断サポートではなく、「悪い」CPUが他のコンピュータではなぜ満足できるのかわかりませんでしたが、問題は解決しました。

答え2

一緒にいるかもしれないインテル エラータ HSW131(または類似)これは偽であり、無害なMCA 05(内部パリティエラー)エラーです。

解決: 無視して下さい。

答え3

32ビットでプロセスを実行していますか? ? ?

以下のサイトで「内部パリティエラー」検索の詳細をご覧ください。

http://www.intel.com/content/dam/www/public/us/en/documents/specation-updates/4th-gen-core-family-desktop-specation-update.pdf

http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf

HSD55. Internal Parity Errors May Incorrectly Report Overflow in The IA32_MCi_STATUS MSR
    Problem:
    Due to this erratum, uncorrectable internal parity error reports with an
    IA32_MCi_STATUS.MCACOD (bits [15:0]) value of 0005H and an
    IA32_MCi_STATUS.MSCOD (bits [31:16]) va
    lue of 0004H may incorrectly set the
    IA32_MCi_STATUS.OVER flag (bit 62) indicating an overflow even when only a single
    error has been observed.

CentOS 7(x64)で32ビットLinux KVMシステムを実行しているHaswell i7-4790(第4世代)でも同じ問題が発生します。

http://ark.intel.com/products/80806/Intel-Core-i7-4790-Processor-8M-Cache-up-to-4_00-GHz

答え4

私はIntel i5-3550(Ivy Bridge)を搭載したLinuxボックスを実行しており、実際にしばらくこの問題を経験しました(同じ状態値)。これは、コア2と3にのみ影響し(ほとんどの唯一のコア2は影響を受けます)、ハードウェアが死んでいる可能性が高く、数週間無効になると仮定します。

平均動作温度は通常より高かったが、清掃後も問題が持続した。これは、MCEエラーメッセージだけでなく、予測不能な分割エラーや実行中のプロセスの競合としても表示されます。

まあ、UEFIは、仕様から最大3.7GHzまでしか上がることができないと言ったとき、いくつかの理解できない理由でターボモードでCPUクロック速度を約4.1GHzに上げることにしました。これらの制限を手動で再構成すると、問題が解決したようです。


要約:この記事を読んでいる人は、オーバークロックも確認してください。

関連情報