okuの日記: やっぱり crash
swapoff してもやっぱり crash していました。 ということで、一念発起 (と言う程のものでもありませんが) memtest86+-1.3 に頼ってみることにしました。
以前、 どうしても安定しなかった システムがあって、その時の教訓で安定しない場合は RAM を疑うようになっているのです。
結果:
05A72124 と 0B390484 の箇所でエラーを検出。
さて、もう 購入元 への返品は 初期不良の期間を過ぎている ので効かないでしょう。 でも、今 512MB の DDR-SDRAM なんかを買う気にはなりません。 要は、問題のある箇所を誰も使わなければいいわけです。 仮に物理アドレスとユーザ空間から見える論理アドレスが一致するなら、該当箇所を狙って mmap か何かで差し押えてしまい、 mlock で動かせないようにしてしまえば取り敢えず問題は回避できるかなあと思ったのですが、残念ながらうまく行きませんでした。
まあ当り前です。 物理アドレスと論理アドレスは別物ですから、kernel レベルで問題あるアドレスを使用しないようにしなければなりません。 BadMEM パッチが 既に開発されている ので、これを利用すればいい ... ですめばよかったのですが、そうは問屋がおろしません。 これは i386 用の patch であって、x86-64 用ではないからです。 まあいいや、ものは試し、ということで無理矢理 patch を当てて、x86-64 用の Kconfig を書き換えてしまいました。
結果:
簡単にはコンパイルできません。
特に、badmem-utils の方が問題です。
ざっとソースを読んでみた感じですが、sizeof(int) と sizeof(void*) を同一視しているかのようなコードが散見されますので、ストレートに x86-64 に持ってくるのは難しいでしょう。
# さて、本当にどうしようかなあ...
2004-12-05 追記: 日記向けハイパーリンクから uid が抜けていたので修正。
やっぱり crash More ログイン