自作PCのKP41病に完全勝利した話

Windows10の自作PCで悩まされていたKP41病に打ち勝った話を共有します。
ネットに一切載っていなかったものが原因だったので誰かの参考になれば幸いです。

# PC構成
* CPU: AMD Ryzen 7 Pro 4750G
* マザボ: MSI MPG B550 GAMING CARBON WIFI
* メモリ: W4U3200PS-8G(8GB×2) → W4U3200PS-16G(16GB×2)
* グラボ: MSI GeForce RTX3080 VENTUS 3X 10G OC
* 電源: Corsair RM850

# PCの略歴
購入理由1: 普段使いのMacとは別に純Windows環境も必要になってきた
購入理由2: (平民が買える価格帯の)MacにはないつよつよGPUパワーが欲しかった
購入理由3: 自作PCやってみたい
という3つの理由でPCを組みました。

2020年
9月: パーツ選び開始 Ryzen7+RTX3080の構成で決定
10月: RTX3080が品薄で入手困難だが、大学院の授業でWindows必須の実習が迫っていたためCPUを内蔵GPU搭載のRyzen7 Pro 4750Gとし、グラボは後から追加する計画で自作実行
11月: まだまだ続くグラボ品薄の中奇跡的にJoshin Webで定価のRTX3080を発見し購入、設置完了

2021年
4月: とあるシミュレーションゲームのメモリ消費量が12GBぐらい行っていて厳しかったため、メモリを16GB→32GBにアップグレード

# 症状
* スリープ状態から復帰すると1/2ぐらいの確率で勝手に電源が落ち、再起動する
* 起動後にWindowsのイベントビューアーを見ると以下のようなエラーログが残っている(通称KP41病)
![無題.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365868/45527c4c-cd68-9819-fab3-91fa93f5f9ef.jpeg)
(これとは別にこのログの前後にも「ダンプ作成中のエラーのため、ダンプファイルの作成が失敗しました。」「以前のシステム シャットダウンは予期されていませんでした。」というログが残る)
* おそらく2021年4月に行ったメモリ交換ぐらいのタイミングで発症を知った

# KP41病とは
イベントビューアーのエラーログのソース「Kernel-Power」、イベントID「41」と出ることからKP41病と呼ばれています。
使用中/スリープ中問わず、勝手に電源が落ちるような症状の際によく出てくる有名なエラーだそうです。
またハード起因からソフト起因まで、このエラーの原因になりうる箇所が非常に幅広く、原因の特定が難しいとのこと。
つまりこのエラーログは「勝手に電源が落ちたよー」と言っているだけで、ここからはそれ以上の情報を得ることはできないようです。

# 試したこと
私のPCでは使用中に電源が落ちるわけではないためあまり実害はないのですが、勝手に電源が落ちるのはあまり気持ちの良いものではない上に、いったん電源が落ちると毎回普段の電源投入より起動までの時間がかかっていたので、解決を目指しネット上に載っている解決方法を色々試してみました。詳しい手順は書かないので必要な方はそれぞれのキーワードで検索してみてください。

### 1. 高速スタートアップの無効化→効果なし
Windows10ではシャットダウン時にCPUやメモリの状態を保持しておくことで次回の起動を高速化する「高速スタートアップ」がデフォルトで有効になっており、シャットダウンを選択しても以前のWindowsのような完全なシャットダウンにはならないようです。
KP41病に限らず、Windows10でトラブルがあったらまずはここを疑えとのことでしたが、私のPCの場合高速スタートアップをオフにしても効果はありませんでした。

### 2. Windows Update→効果なし
これもWindowsのトラブル対処では定番ですが、更新しても効果ありませんでした。

### 3. 各種ドライバの更新→効果なし
こちらもWindowsのトラブルにおいては定番です。私の場合は効果ありませんでした。

### 4. 電力設定を高パフォーマンスにする→効果なし
KP41病はハードウェアへの電圧が不安定になることで起こることもあるそうで、その場合はPCの電力設定を「高パフォーマンス」にすることで解決できることもあるようですが、私の場合は治りませんでした。

### 5. USB機器を抜いてからスリープ復帰→効果なし
そもそもWindows自体が起動しない場合によく試される方法ですが、意味ありませんでした。

### 6. Windowsの再インストール→効果なし
完全に初期化するのは面倒なので、個人用ファイルは残したままOSだけ再インストールする「PCのリフレッシュ」を行いましたが、効果ありませんでした。

### 7. BIOSアップデート→効果なし
BIOSのアップデートを行いましたが効果ありませんでした。

### 8. Windowsメモリ診断→効果なし
Windows標準のメモリ診断ツールを使用してメモリの診断を行いましたが、異常は見つかりませんでした。

### 9. アップグレードしたメモリを元に戻す→効果なし
前述の通り2021年4月ごろにメモリを8GB×2→16GB×2に交換しており、その前後からKP41病が出始めたように思われたため、メモリを最初に使用していた8GB×2に戻しましたが、戻した後にも症状が起こりました。

# 解決
結論から言うと、原因はBIOSの以下の設定のせいでした。
![IMG_0611.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365868/e48b8183-e561-af28-0a7a-8ec66fa168ee.jpeg)
SETTINGS -> Advanced -> PCI Subsystem Settingsの中にある「PCI_E1 Lanes Configuration」をAutoにしたら見事に症状が消えました。
ここはデフォルトではAutoになっていたのですが、RTX3080購入後、GPU負荷が高いときにマウスやキーボードなどのUSB機器の接続が不安定になるという別の不具合が起こっており、あるサイトにこの設定をAutoから変えることでUSB接続の不具合が治ったという情報があり、設定を変えていたのでした。

よく挙がっている解決策全てを試しても改善せず途方に暮れていたある日、スリープではなく休止状態でもこのKP41エラーが起こるのか試した際、普段と違い一度ブルースクリーンになった後に再起動がかかりました。その時の画面がこちら
![IMG_0578.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/365868/36b0a682-a2b7-6f68-a632-86bda0014429.jpeg)
ん？ VIDEO_MEMORY？ ビデオメモリ？ もしかしてグラボ周りが原因？？？？
となり、BIOSの上記設定を変えていたことを思い出し、解決に至ったわけです。

ちなみにある意味そもそもの原因であるUSB機器の接続不安定問題は、どこかのタイミングでグラボのドライバ更新が入っていたようで、上記設定をAutoに戻しても再び起こることはありませんでした。

BIOSのPCIeレーンの設定を変える人はあまりいないかとは思いますが、誰かの助けになれば幸いです。