1 つの RAM モジュールに不良バイトがある / RAM の領域が使用できないようにブロックする

1 つの RAM モジュールに不良バイトがある / RAM の領域が使用できないようにブロックする

1 台のサーバーに 512 MB の RAM モジュールが 4 つあります。memtest86+ を使用して RAM をテストすると、4 番目の RAM は 1 ビットのみエラーを示します。4 番目のスロットの RAM を他の RAM と交換しても、4 番目のスロットの RAM のまったく同じ場所でエラーが発生します。そのため、サーバーによって使用される RAM の特定のアドレス (または必要な場合は 4kb ページ) をブロックしたいと考えました。サーバーには fedora 11 がインストールされており、テスト目的でのみ使用されます。ユーザー アプリケーションはホストされていません。RAM の特定の部分の使用をブロックする方法はありますか。または、インストールされている RAM モジュールに関係なく、特定のバイトでエラーが発生する原因は何ですか。

答え1

最近、カーネルパラメータ(たとえば、grub configで起動時に提供するもの)があることを知りました。

memmap=[量]M$[開始場所]M

メモリの一部をロックアウトするために、これを何度も実行できます。

例えば。

メモリマップ=3M$217M

217から219までのメガバイトをロックアウトします

答え2

以前は Linux 用の「BadMEM」パッチがありましたが、それを現在のカーネルにアップグレードするには少し手間がかかります。

http://badmem.sourceforge.net/docu/BadMEM-HOWTO.html

答え3

テストで判明したように、マザーボードのスロットが不良である可能性があります。そのスロットを使用しない以外に、この問題を回避する方法は見たことがありません。私の知る限り、簡単な答えはありません。何らかのソフトウェアを作成することはできると思いますが、nik が言ったように、それはむしろ SO の質問になるでしょう。

答え4

ロードされるとこのページを割り当てるだけで、それ以外は何もしないカーネル拡張機能を作成することもできます。

残念ながら、これを行う方法がわかりません。IBM の VM システムで作業していたときには、この機能は組み込まれていましたが、もちろん役に立ちません。

関連情報