GPU の電源ピンを2つとも抜いて M/B に挿してあるだけの状態にしたら、なんと Test #2 で fail しなくなった。
(PBO は disabled のまま)
M/B も GPU も GIGABYTE だし CPU も GPU も AMD の現世代なので、相性問題とかではない気はするんだよなぁ。メモリが相性悪いか、電源が 1200W では足りてないか、GPU のハードウェア不良か。はてさて。
いや待ってくれ、じゃあ今まで動いていた環境は何だったんだ???
(PBO, Above 4G Decoding, Re-Size BAR すべて disabled で GTX 1660 を繋いだ状態のテスト)
CMOS クリアからの Load Optimized Defaults して設定変更なしの状態で RX 7900 XT。
エラーレートは格段に下がったが、やはり Test #2 を繰り返すと fail する。
これは……うーん。
物理今日の退勤後にメモリのタイミングか電圧あたりを弄ってみて、それで駄目そうなら GIGABYTE とかに連絡か? (M/B と Radeon 両方とも GIGABYTE なので)
メモリタイミングが Auto だと 40-40-40-77 (CAS Latency, tRCD, tRP, tRAS) だったところを 42-42-42-80 にしてみたが、駄目
Load Optimized Defaults 後、
Power Down Enable: Auto→Disabled
System Memory Multiplier: Auto(48.00)→44.00
メモリ 3.14 GB しか認識されてなくて草
なんもわからん
CMOS クリアして Power Down Enable: Auto→Disabled 後、 RX7900XT の OC スイッチを Silent 側に切り替えた。やはり駄目。
メモリ全域に Test #2 をかけると 20〜60 MB の領域にエラーが集中するなぁ。かといってアドレス範囲を制限してやってみたら反応なかったりするし。メモリそのものが腐ってるわけではないのはグラボ抜きテストでわかってるけど、特徴的な失敗傾向ではある
RX7900XT を挿した状態でメモリ1枚挿しのテスト。
メモリ2枚のうち1枚は簡単にエラーが出るが、もう1枚の方はかなり粘る。6時間で24というとこれまでの実験のうちでは相当少ないレートだし、8エラーで1組 (後述) であることを考えるとほとんど無事であるといえそう
ところでエラーの特徴を探してみると、なかなか面白い。
* memtest86+ の Test #2 でのみ頻繁に失敗し、他のテストでは失敗する様子がない
* エラーは 20〜26 MB の領域にほとんどが集中しているが、すべてではない
* アラインされた64バイトの領域で、まとめて同じビットの反転が起きている (ようにも見える)
* エラーの起きるアドレスは固定ではない。反転するビットも安定しているようには見えるが、すべてのエラーで同じビットがというわけではない。
Test 2 がアドレスを加工して書き込むテストであること、他のテストで失敗が見られないこと、アラインされたまとまった領域でランダムに失敗すること。
これらを合わせて考えると、どうも読み出す値が化けているのではなく読み出すアドレスが化けているのではないかという気がしてくる。
エラーの起きる CPU コアには偏りはあるものの多くのコアで起きており、CPU の問題とは考えづらいか。
低アドレス帯に集中していることからも、キャッシュが化けているとも考えづらそう。
となると、メモリが (程度の差こそあれ) 2枚とも腐っているか、 M/B の問題であるか、 M/B の問題として、それがバスやコントローラ系の話なのか電源まわりなのか。
どうも特定のコアにエラーが偏っているので、これもしかして Curve Optimizer で電圧削ったときと本質的に同じこと起きてない? と思い至り、腐ってそうなコアを CO で positive 側に盛る戦略でやってみています (手応えがある)
これは勝つるか……!?
腐ってそうなコアに Curve Optimizer で電圧を盛る方針は当たりだったらしい (ただし他のコアとの差が激しくなると腐りコアがまたもや不安定になるので、全体的に上げていかないといけなそう)
人々が -8 とか -15 とか言ってる中で私の石だけ -5 で不安定だったりしたの、グラボ (GTX 1660) 挿してたせいでこの不安定症状が出ていたせいだったんだな。謎が解けた。
で、結局石が腐ってそうなんだけどどうすんの……
定格でアドレスが化けるのは話にならないし、使えはするけど正直かなり険しい顔になっている。
ただ、グラボ抜きであれば一応まともに動いてそうというのもあり、原因が確定しきれないのがもどかしい。確定だったら修理か交換を依頼したいところなんだけど
これは EXPO 無効での話なので、有効化してもいけそうか少し様子見してみる。 CPU の問題ならメモリ側をすこし攻めてみても大丈夫だと思いたい
https://mastodon.cardina1.red/@lo48576/109557649012622208 の例があるので300パスくらい走らせないと安心してより攻めた設定を試せないというのがもどかしい
普通の用途なら許容範囲なのかもしれないけど、私は日常的にコンパイル回しまくってるしシステムのバイナリも手元でコンパイルしたものなので、万が一腐ったバイナリがインストールされてしまうと大変面倒なことになってしまう
https://mastodon.cardina1.red/@lo48576/109542515372016436
DRM モジュールの問題、実はメモリエラーは全然関係なくて VGA_SWITCHEROO=y したら何事もなかったかのように動き始めました……
それはそれとしてマウスカーソルは表示されてないな……
やっぱり解決してないじゃん!
VGA_SWITCHEROO=y してたのに再起動したらまた駄目になってる
と思ったら今度はフリーズするし……やっぱりまだ CPU おかしい?
とりあえずメモリについては勝利宣言していいと思うんですよ。
あとは amdgpu まわりの問題だけど、とりあえず Re-Size Bar 無効化して様子見してみる
結局途中でフリーズ (たぶんクラッシュ) してから症状が再発したので amdgpu 側か RX 7900 XT 側がアカンのでしょう……
上流にレポートします
X cannot start, multiple "Max streams reached, can't add stream", and backtrace (#2317) · Issues · drm / amd · GitLab
https://gitlab.freedesktop.org/drm/amd/-/issues/2317
報告した
再現条件と症状が微妙に安定しなくて記述が難しい……
てかログファイルの添付できるのを忘れて snippets にアップロードしてしまったな。まあいいか……
issues/new に DnD でアッピヨーヨできそうな領域がなかったので手癖で snippets 使ってしまったけど、作成された issues 見たら普通に生えてたし、なんなら作成画面でもアイコンだけのボタンが存在した (リッチテキストエディタのためのボタン群だとばかり思っていたが、エディタ外機能まであったのかい)
解説: LLVM や clang のビルド中にコンパイラが静かに segfault で死ぬようになり、アップデートできずにいる (下手にクラッシュしないまま壊れたバイナリがインストールされても困るが……)
なんか安定した IP で死んでるんだよなぁ……もしかして既にバイナリ腐ってる? でもそれならこっち (<https://mastodon.cardina1.red/@lo48576/109652081382595602>) の死に方をする場合もあるのがよくわからない
再起動しても状況が変わらないが、並列数2 (MAKEOPTS=-j2) にするとクラッシュしなくなったな。負荷で不安定になるということはやっぱり例の問題だ…… (なおビルド時間は約16倍になる模様)
本格的にブチ切れしたので Curve Optimizer で all cores +10 してテスト回してる
節電なんてクソ喰らえ、コンパイル結果が腐る石なんぞ詐欺健康グッズ未満じゃ
BIOS のバージョンを約5倍にした (F6d あたりから F32d にした) ので、安定性が上がったことを期待して電圧盛りを解除した設定で memtest86+ を再度回してみている
組み上げたばかりの頃に落ちていた memtest86+ の test #2 も24時間以上落ちなかったし、 gcc 14.2.1 もビルドとテストを30回したけど一度も失敗しなかったし、完全に安定したと確信した