180830 スリープの復帰に失敗する - Radeonのハードかドライバが原因だろうか
最近、頻度は多くないが、スリープから復帰するときにWindowsの再起動が掛かることがある。テレビ録画でスリープからの自動復帰を組んでいるので、いざというときに録画したはずの番組が録画されていないことになると困る。
イベントログを見ると、再起動が掛かる4分前に「ディスプレイドライバー amdkmdap が応答を停止しましたが、正常に回復しました」という記録がある。問題はRadeon絡みっぽい。
Bugcheckで完全メモリダンプを保存するように設定してあったので、WinDbgを使って C:\Windows\MEMORY.DMP を解析に掛けてみる。
15: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 9F, {3, ffffbc02ec52d060, ffffe18788aed8d0, ffffbc02f0d37810}
Implicit thread is now ffffbc02`e6c6b040
Probably caused by : dxgkrnl.sys ( dxgkrnl!DXGADAPTER::AcquireCoreSync+5eec3 )
Followup: MachineOwner
---------
15: kd> analyze -v
Couldn't resolve error at 'nalyze -v'
15: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_POWER_STATE_FAILURE (9f)
A driver has failed to complete a power IRP within a specific time.
Arguments:
Arg1: 0000000000000003, A device object has been blocking an Irp for too long a time
Arg2: ffffbc02ec52d060, Physical Device Object of the stack
Arg3: ffffe18788aed8d0, nt!TRIAGE_9F_POWER on Win7 and higher, otherwise the Functional Device Object of the stack
Arg4: ffffbc02f0d37810, The blocked IRP
以下略
デバイスがIRP(I/O要求パケット)に応答しないとのことなので、ハードウェアかドライバーの問題であることは間違いなさそうだ。しかし、それ以上のことは分からない。グラボは去年に中古で買ったもので、そろそろ壊れてもおかしくはないか。でも単にドライバーのバグである可能性もぬぐえないので、買い替えるべきかどうか判断に迷う。
メモリの相性問題が影響している可能性 (2018/09/10追記)
よくググってみると、この種類のエラーはグラボだけでなくメモリの相性問題(安定性)が影響している可能性があるとのこと。同じCorsairのメモリを使っていて同様の環境で問題を解決した人を発見。
→ 「ディスプレイドライバが応答を停止しましたが、正常に回復しました」との戦いの顛末 - 技術者になりたい何か
試しにMemTest86 Ver.4.3.2(現行のバージョンではない)を走らせてみると、最初の数十秒のテストで画面が暗転して自動再起動が掛かる。奇妙なことに、より古いバージョンのMemTest86 Ver.3.2では問題が起きることなく1周完走した。MemTest86+ Ver.4.2がPC環境によってはセーフモードにしないと動作しない経験があったので、今回もその関係だと思っていた。
マザーボードの設定を確認すると、メモリタイミングの設定はDDR4-2133で自動設定になっていた。これを以前の常用OC設定と同じようにDRAM RAS ACT Timeを35→37に変更したところ、MemTest86 Ver.4.3.2も再起動せずに走るようになった。
この問題については再現性がないのでしばらくの間様子を見るしかないのだが、メモリの相性問題解決でエラーも解消したという例を見るに、この対処は効果がありそうだ。
グラボをGeforce系に変更 (2018/09/18追記)
メモリタイミングを変更しても問題が再発したため、グラボ交換を断行。安定性についてはまた様子を見るしかない。